This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
bw2:sbo_sl_v25 [2021/02/10 17:29] akoehler |
bw2:sbo_sl_v25 [2022/08/23 14:26] (current) akoehler |
||
|---|---|---|---|
| Line 45: | Line 45: | ||
| Information on sending data through the Service Layer is found **// | Information on sending data through the Service Layer is found **// | ||
| + | ====== Sample Building JSON for SAP Business One Service Layer ====== | ||
| + | |||
| + | ===== Workflow ===== | ||
| + | This workflow builds two sections of a JSON structure for an SAP Business One sales order. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ===== Create Main DataBuilder Step ===== | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | This should always contain the first items of the data structure. | ||
| + | |||
| + | - Enter a workflow step name. | ||
| + | - Select the data source from the Datasource Object drop-down list. | ||
| + | - Select the desired data structure type to be created (JSON or XML). | ||
| + | - Leave the “Add as an array” checkbox cleared unless you know that the top-level object needs to be any array. This is uncommon. | ||
| + | - Select the " | ||
| + | - This option causes the " | ||
| + | - Enter the name of the top-level object. | ||
| + | - The requirements of the receiving API will determine this. | ||
| + | - In some cases, a top-level object name is not used; e.g. SAP Service Layer and BigCommerce. | ||
| + | - If a top-level object name is not used, leave the field blank. | ||
| + | - Create a row for each value to be included in the structure. | ||
| + | - Enter the output field name values in the right-side grid. | ||
| + | - The Field Name value will need to exactly match (including case) the value the API is expecting. | ||
| + | - Select the field type from the drop-down list. | ||
| + | - Press < | ||
| + | |||
| + | Continue this process for all desired fields in the top-level object. | ||
| + | |||
| + | The data structure being built is displayed in the left-side panel as elements are added. | ||
| + | The data structure cannot be altered in this area. The display is for information only. | ||
| + | |||
| + | |||
| + | ===== Create the Lower-Level DataBuilder Step(s) ===== | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | This will be the next section in the expected data structure. The process is the same as described in the “Main DataBuilder” step. | ||
| + | |||
| + | For objects such as a set of rows, the display will only display a single entry. However, all data received as input will be included when the workflow executes. | ||
| + | |||
| + | <WRAP center round tip 80%> | ||
| + | In most cases the lower-level sections will need to be marked as an **array**. The “Add as an array” checkbox should be selected. However, always check your API documentation to verify this. **At the same time**, the " | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 80%> | ||
| + | When creating lower-level section that __may__ have more than one entry (i.e. an array), be sure to put the DataBuilder tool within a **Loop**. | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | All objects other than the main one will require an Object Name. This must exactly match (including case) what is expected by the API. | ||
| + | |||
| + | ===== Reference Lower-level Objects in the Main DataBuilder Step ===== | ||
| + | |||
| + | Once the DataBuilder steps for the lower-level objects have been created, they can be referenced in the main DataBuilder step. This is what causes the entire data structure to be created when the workflow is executed. | ||
| + | |||
| + | - Click the “Field Type” drop-down in the main DataBuilder step. The names of the lower-level objects are displayed in addition to the standard field type values. | ||
| + | - Select the desired object. | ||
| + | - The Field Name and Value are automatically filled in. | ||
| + | - The lower-level object is displayed in the left-side data structure. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Here is the resulting JSON that is sent in the API call. | ||
| + | |||
| + | <code json> | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }, | ||
| + | { | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | } | ||
| + | ], | ||
| + | " | ||
| + | { | ||
| + | " | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </ | ||
| + | ===== Reference the Output of the Main DataBuilder Step in the API Call ===== | ||
| + | |||
| + | The output of the main DataBuilder step is used in the API call. This is done by using the “**CumulativeData**” variable from the Main DataBuilder step. An example is shown in the image below. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ==== Sending Data to the Service Layer ==== | ||
| + | Information on sending data through the Service Layer is found **// | ||