<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Smartchart开发手册</title>
    <link>https://help.smartchart.cn/en/docs/6.DataServices/</link>
    <description>Recent content on Smartchart开发手册</description>
    <generator>Hugo -- gohugo.io</generator><atom:link href="https://help.smartchart.cn/en/docs/6.DataServices/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title></title>
      <link>https://help.smartchart.cn/en/docs/6.DataServices/DataServiceSettings/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/en/docs/6.DataServices/DataServiceSettings/</guid>
      <description>Introduction # SmartChart datasets can be exposed as independent API microservices. By configuring user whitelists and tokens, external systems can query SmartChart dataset data via GET/POST requests. This makes SmartChart not just a visualization platform, but a lightweight data API gateway.
Permission Settings # Account Access # Super admin can find &amp;ldquo;Service Configuration&amp;rdquo; in the user icon dropdown menu Configure API users (must exist in user settings): { &amp;#34;test&amp;#34;: { &amp;#34;token&amp;#34;: &amp;#34;smartchart&amp;#34; }, &amp;#34;test2&amp;#34;: { &amp;#34;token&amp;#34;: &amp;#34;smartchartxxx&amp;#34;, &amp;#34;host&amp;#34;: [&amp;#34;10.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://help.smartchart.cn/en/docs/6.DataServices/DataServiceAPI/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/en/docs/6.DataServices/DataServiceAPI/</guid>
      <description>Encrypted API Request (Recommended) # &amp;ldquo;secret_key&amp;rdquo; is the admin&amp;rsquo;s &amp;ldquo;token&amp;rdquo; in API service settings Content-Type: application/x-www-form-urlencoded
GET Request # /echart/dataset_api/?visitor=xxx&amp;amp;token=xxx&amp;amp;type=xxx&amp;amp;stamp=xxxxx&amp;amp;param={&amp;#34;xx&amp;#34;:&amp;#34;xxx&amp;#34;} Parameters:
visitor: username type: dataset ID stamp: timestamp (milliseconds since 1970) token: SHA1(secret_key + stamp + visitor + type) param: query parameters (optional), JSON string Response:
{ &amp;#34;data&amp;#34;: [[]], &amp;#34;result&amp;#34;: &amp;#34;success&amp;#34;, &amp;#34;maxpg&amp;#34;: 1, &amp;#34;pg&amp;#34;: 1 } data: 2D array, first row is header result: success or error maxpg/pg: Fixed at 1 for GET (no pagination) POST Request # For backend scheduled data sync.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://help.smartchart.cn/en/docs/6.DataServices/DataReceiveAPI/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/en/docs/6.DataServices/DataReceiveAPI/</guid>
      <description>POST Request # url: /echart/dataset_api/ Content-Type: application/x-www-form-urlencoded Request parameter data # { &amp;#34;visitor&amp;#34;: &amp;#34;xxx&amp;#34;, &amp;#34;token&amp;#34;: &amp;#34;xxx&amp;#34;, &amp;#34;stamp&amp;#34;: &amp;#34;xxxxx&amp;#34;, &amp;#34;type&amp;#34;: &amp;#34;xxx&amp;#34;, &amp;#34;ds&amp;#34;: [[&amp;#34;A&amp;#34;,&amp;#34;B&amp;#34;],[&amp;#34;a1&amp;#34;,&amp;#34;b1&amp;#34;],[&amp;#34;a2&amp;#34;,&amp;#34;b2&amp;#34;]], &amp;#34;update&amp;#34;: 0 } Parameter Description # visitor: username type: dataset ID stamp: timestamp (milliseconds since 1970) token: SHA1 encrypted, token=SHA1(secret_key + stamp + visitor + type) update: 0=insert, 1=update ds: 2D array or refer to data filling/update format &amp;ldquo;secret_key&amp;rdquo; is the admin&amp;rsquo;s &amp;ldquo;token&amp;rdquo; in API service settings</description>
    </item>
    
    <item>
      <title></title>
      <link>https://help.smartchart.cn/en/docs/6.DataServices/DataDownload/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/en/docs/6.DataServices/DataDownload/</guid>
      <description>Introduction # SmartChart provides ds_download() function to download dataset data as CSV or Excel files. Combined with button click events, enables flexible on-demand download of current query results (including filter conditions).
Usage # ds_download(name, dataset, xls=0) // name: file name // dataset: 2D array or string // xls: 0=CSV (default), 1=Excel Example # Create a download button in template with a drag container: &amp;lt;div class=&amp;#34;smtdrag&amp;#34; id=&amp;#34;id_down1&amp;#34;&amp;gt; &amp;lt;button&amp;gt;Download Data&amp;lt;/button&amp;gt; &amp;lt;/div&amp;gt; Add click handler in any chart JS: $(&amp;#39;#id_down1&amp;#39;).</description>
    </item>
    
    <item>
      <title></title>
      <link>https://help.smartchart.cn/en/docs/6.DataServices/DataFilling/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/en/docs/6.DataServices/DataFilling/</guid>
      <description>Introduction # Data filling is SmartChart&amp;rsquo;s core mechanism for writing frontend user input to databases. Through ds_save(dataset_index, dataset), user form data, button-triggered data, and extracted cell data can be written to databases. After configuring the fill dataset, all write logic is controlled in frontend JS.
Use Cases # Collect user input data Write processed data back to any system Build survey/questionnaire systems Analytics tracking Configuration # Create a lazy-load dataset with content:</description>
    </item>
    
    <item>
      <title></title>
      <link>https://help.smartchart.cn/en/docs/6.DataServices/DataUpdate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/en/docs/6.DataServices/DataUpdate/</guid>
      <description>Use Cases # Update data based on primary keys
Configuration # Create a lazy-load dataset:
dataset = { &amp;#34;table&amp;#34;: &amp;#34;table_name&amp;#34;, &amp;#34;id&amp;#34;: &amp;#34;id&amp;#34;, &amp;#34;fDict&amp;#34;: {&amp;#34;name&amp;#34;: &amp;#34;code&amp;#34;, &amp;#34;m_age&amp;#34;: &amp;#34;age&amp;#34;}, &amp;#34;sFields&amp;#34;: [&amp;#34;age&amp;#34;, &amp;#34;update_date&amp;#34;], &amp;#34;autoDict&amp;#34;: {&amp;#34;updater&amp;#34;: &amp;#34;$username&amp;#34;, &amp;#34;update_date&amp;#34;: &amp;#34;curdate()&amp;#34;} } id: Primary key field fDict: Field mapping between input and database sFields: Special fields (numeric types, functions) autoDict: Auto-submitted data Update Method # Same as data filling, add update=1: ds_save(0, dataset, 1)
Data Format # // Single row dataset = {&amp;#39;id&amp;#39;: 123, &amp;#39;name&amp;#39;: &amp;#39;john&amp;#39;} // Multiple rows dataset = [{&amp;#39;id&amp;#39;: 123, &amp;#39;name&amp;#39;: &amp;#39;john&amp;#39;}, {&amp;#39;id&amp;#39;: 124, &amp;#39;name&amp;#39;: &amp;#39;smith&amp;#39;}] Composite Primary Key # dataset = { &amp;#34;table&amp;#34;: &amp;#34;table_name&amp;#34;, &amp;#34;id&amp;#34;: &amp;#34;concat(a,b)&amp;#34;, &amp;#34;fDict&amp;#34;: {&amp;#34;id&amp;#34;: &amp;#34;concat(a,b)&amp;#34;}, &amp;#34;sFields&amp;#34;: [], &amp;#34;autoDict&amp;#34;: {} } Auto-Generated Codes # &amp;#34;autoCode&amp;#34;: {&amp;#34;order_no&amp;#34;: &amp;#34;SELECT CONCAT(&amp;#39;SCDD&amp;#39;, DATE_FORMAT(NOW(), &amp;#39;%Y%m%d&amp;#39;), LPAD(IFNULL(CAST(SUBSTRING(MAX(order_no), 13) AS UNSIGNED) + 1, 1), 3, &amp;#39;0&amp;#39;)) AS o FROM work_order WHERE order_no LIKE CONCAT(&amp;#39;SCDD&amp;#39;, DATE_FORMAT(NOW(), &amp;#39;%Y%m%d&amp;#39;), &amp;#39;%&amp;#39;)&amp;#34;} Shorthand: &amp;quot;autoCode&amp;quot;: {&amp;quot;order_no&amp;quot;: &amp;quot;SCDD&amp;quot;}</description>
    </item>
    
    <item>
      <title></title>
      <link>https://help.smartchart.cn/en/docs/6.DataServices/BackendAPIRefresh/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/en/docs/6.DataServices/BackendAPIRefresh/</guid>
      <description>Introduction # Backend API refresh allows external systems (ETL schedulers, data pipelines) to notify SmartChart to refresh specified dashboard data caches after data is ready. More precise and resource-efficient than frontend scheduled refresh, ideal for &amp;ldquo;refresh after ETL completion&amp;rdquo; scenarios.
Use Cases # ETL workflow: wait for backend data refresh, then trigger dashboard refresh Time-consuming queries: pre-refresh to ensure fast first load Users need consistently fast page load experiences Recommended: Set dataset cache time longer (e.</description>
    </item>
    
  </channel>
</rss>
