Académique Documents
Professionnel Documents
Culture Documents
Integration framework
for SAP Business One
Guide 05
Schemas
-1-
Content
1. vBIU Outbound Schemas for SAP Business One ........................................3 1.1 Skip the Outbound Processing ...............................................................3 1.2 Outbound Schemas for SAP Business One ...........................................4 1.2.1 Object ..............................................................................................4 1.2.2 Object (Full) .....................................................................................5 1.2.3 Service.............................................................................................6 1.2.4 Service (Full)....................................................................................7 1.2.5 B1i SQL ...........................................................................................9 1.2.6 SQL................................................................................................11 1.2.7 SQL (full)........................................................................................12 1.3 vBIU Outbound Schemas for Database ...............................................13 1.3.1 B1i SQL .........................................................................................13 1.3.2 SQL................................................................................................15 1.3.3 SQL (full)........................................................................................16 1.4. vBIU Outbound Schemas for File ........................................................17 1.4.1 XML ...............................................................................................17 1.4.2 CSV ...............................................................................................18 1.4.3 CSV (full) .......................................................................................19 1.4.4 Text................................................................................................21 1.4.5 Text (full)........................................................................................23 1.5. vBIU Outbound Schemas for Web Service .........................................25 2. Preconfiguration Schemas.........................................................................26 2.1 Scenario Package Setup Description ................................................26 Copyrights, Trademarks, and Disclaimers .....................................................28
-2-
In case you do not want to handover the message to the receiver system, the Scenario Step can create a special tag which indicates the generic processing in the Integration framework to skip the message processing. In case the message is skipped due to the logic in the Scenario Step, the Message Log information (if switched on) will be put to the section Filtered. The Result Message will have the information Message skipped by vBIU logic or an individual message if you define one with the attribute info. In case you want to avoid an entry in the Message Log, please introduce the attribute msglog and set it to false.
-3-
Prerequisite: Method, Object identifier and Object key is defined in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound]). B1out/@type Mandatory root tag B1out, mandatory attribute with the value object
-4-
B1out/@type Mandatory root tag B1out, mandatory attribute with the value object_full Control/method one of the following values: Insert (for insert) Insert/Update (for insert with fallback to update) Update (for update) Update/Insert (for update with fallback to insert) Delete (for delete) Control/objectid SAP Business One object identifier Control/keyname Optional multiple tags with the name of the key(s) for the SAP Business One object
-5-
1.2.3 Service
Example for Approval request Service
<B1out type="service"> <ApprovalRequest> <Code>5</Code> <ObjectType>112</ObjectType> <IsDraft>Y</IsDraft> <ObjectEntry>4</ObjectEntry> <Status>arsApproved</Status> <Remarks>Sell to SAP Labs China for TechEd 2009</Remarks> <CurrentStage>1</CurrentStage> <OriginatorID>4</OriginatorID> <ApprovalRequestLines> <ApprovalRequestLine> <StageCode>1</StageCode> <UserID>1</UserID> <Status>ardApproved</Status> <Remarks>OK11</Remarks> </ApprovalRequestLine> </ApprovalRequestLines> <ApprovalRequestDecisions> <ApprovalRequestDecision> <ApproverUserName>manager</ApproverUserName> <ApproverPassword>1234</ApproverPassword> <Status>ardApproved</Status> <Remarks>approved by vPlatform</Remarks> </ApprovalRequestDecision> </ApprovalRequestDecisions> </ApprovalRequest> </B1out>
Prerequisite: Service Identifier, Service Method Type, Service Method Identifier, Get Method identifier, Request Structure and Request Key is defined in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound]). B1out/@type Mandatory root tag B1out, mandatory attribute with the value service
-6-
B1out/@type Mandatory root tag B1out, mandatory attribute with the value service_full serviceid The identifier/name of the SAP Business One service. mtype An SAP Business One service provides multiple methods. The relevant methods to be used in the outbound phase are typically the methods to insert,
-7-
update or delete a message. Here you specify which of these actions you want to process: add update remove
method With this tag you specify the identifier/name of the method, you want to process. getmethod Before performing the required action, the DI API of SAP Business One first retrieves the data by the Get method, provided by the service. This is needed e.g. in case of an update to merge incoming data with existing data, stored already in the SAP Business One database. Therefore you need to specify here the identifier/name of the Get method. requeststr The SAP Business One service provides a special structure to handover particular parameters, typically key information. Here you specify the identifier/name of this structure. keyname Here you specify the identifier of the primary key for this service.
-8-
B1out/@type Mandatory root tag B1out, mandatory attribute with the value b1isql SQL/@sqlmode Mandatory tag SQL. The attribute sqlmode is also mandatory. Here you set the value to single or multiple. This flag is relevant for the processing of multiple sql statements. The default is multiple. single: multiple sql statements will be concatenated by a semicolon. This one sql statement will be handed over to the database. This is the supported by most of the database systems. in this mode B1i will process each sql statement one after the other. This is necessary in case the destination database system does not support semicolon separated multiple sql statements, e.g. the DB2 database system.
multiple:
Table Table is a fix value to define a database table record. You can define multiple of these tags. You can nest these tags to represent father-child relationship. Table/@id The attribute id specifies the name of the database table.
-9-
Table/@keylist The attribute keylist represents the specification of the primary key field name. In case the primary key consists out of multiple field values concatenated, you specify a comma separated list of all field names. Table/@task With this attribute you specify the operation in the database. task=A Automatic detection if update or insert. The correct operation is detected for each of the defined record separately by using the definitions of the primary keys. Insert. The operation will be insert. In case the record exists already, this will cause duplicate entries or a unique key constraint in the database. Update. The operation will be update. In case the record does not exist, no record will be inserted. Delete. The operation will be delete. In case the record does not exist, no operation will happen.
task=I
task=U task=D
Table/@del In case the operation is D, here you can define a comma separated list of table names in which the deletion should happen in addition. The prerequisite for this cascading deletion is the same primary key. Field Field is a fix value to define a field in the database table record. You can define multiple of these tags. Field/@id The attribute id specifies the name of the database table field. Field/@value The attribute value holds the value of the particular field. Field/@wrapchar As default the value is wrapped by the apostrophe character. In case you want to avoid this (e.g. the value contains a number), you set the wrapchar to false.
- 10 -
1.2.6 SQL
<B1out type="sql"> <sql>sql statement</sql> <sql>sql statement</sql> <sql>sql statement</sql> ... </B1out>
Prerequisite: SQL Mode is defined in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound]). B1out/@type Mandatory root tag B1out, mandatory attribute with the value sql sql With this tag you introduce a sql statement. You can define multiple of these tags. Whereas in the B1isql format (chapter 1.5) B1i is generating the sql statements, here the sql statement is finally generated by the vBIU. B1i will send it without any interpretation to the database system.
- 11 -
B1out/@type Mandatory root tag B1out, mandatory attribute with the value sql_full sqlmode Mandatory tag SQL. The attribute sqlmode is also mandatory. Here you set the value to single or multiple. This flag is relevant for the processing of multiple sql statements. The default is multiple. single: multiple sql statements will be concatenated by a semicolon. This one sql statement will be handed over to the database. This is the supported by most of the database systems. in this mode B1i will process each sql statement one after the other. This is necessary in case the destination database system does not support semicolon separated multiple sql statements, e.g. the DB2 database system.
multiple:
sql With this tag you introduce a sql statement. You can define multiple of these tags. Whereas in the B1isql format (chapter 1.5) B1i is generating the sql statements, here the sql statement is finally generated by the vBIU. B1i will send it without any interpretation to the database system.
- 12 -
DBout/@type Mandatory root tag DBout, mandatory attribute with the value b1isql SQL/@sqlmode Mandatory tag SQL. The attribute sqlmode is also mandatory. Here you set the value to single or multiple. This flag is relevant for the processing of multiple sql statements. The default is multiple. single: multiple sql statements will be concatenated by a semicolon. This one sql statement will be handed over to the database. This is the supported by most of the database systems. in this mode B1i will process each sql statement one after the other. This is necessary in case the destination database system does not support semicolon separated multiple sql statements, e.g. the DB2 database system.
multiple:
Table Table is a fix value to define a database table record. You can define multiple of these tags. You can nest these tags to represent father-child relationship. Table/@id The attribute id specifies the name of the database table.
- 13 -
Table/@keylist The attribute keylist represents the specification of the primary key field name. In case the primary key consists out of multiple field values concatenated, you specify a comma separated list of all field names. Table/@task With this attribute you specify the operation in the database. task=A Automatic detection if update or insert. The correct operation is detected for each of the defined record separately by using the definitions of the primary keys. Insert. The operation will be insert. In case the record exists already, this will cause duplicate entries or a unique key constraint in the database. Update. The operation will be update. In case the record does not exist, no record will be inserted. Delete. The operation will be delete. In case the record does not exist, no operation will happen.
task=I
task=U task=D
Table/@del In case the operation is D, here you can define a comma separated list of table names in which the deletion should happen in addition. The prerequisite for this cascading deletion is the same primary key. Field Field is a fix value to define a field in the database table record. You can define multiple of these tags. Field/@id The attribute id specifies the name of the database table field. Field/@value The attribute value holds the value of the particular field. Field/@wrapchar As default the value is wrapped by the apostrophe character. In case you want to avoid this (e.g. the value contains a number), you set the wrapchar to false.
- 14 -
1.3.2 SQL
<DBout type="sql"> <sql>sql statement</sql> <sql>sql statement</sql> <sql>sql statement</sql> ... </DBout>
Prerequisite: SQL Mode is defined in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound]). DBout/@type Mandatory root tag DBout, mandatory attribute with the value sql sql With this tag you introduce a sql statement. You can define multiple of these tags. Whereas in the B1isql format (chapter 1.5) B1i is generating the sql statements, here the sql statement is finally generated by the vBIU. B1i will send it without any interpretation to the database system.
- 15 -
DBout/@type Mandatory root tag DBout, mandatory attribute with the value sql_full sqlmode Mandatory tag SQL. The attribute sqlmode is also mandatory. Here you set the value to single or multiple. This flag is relevant for the processing of multiple sql statements. The default is multiple. single: multiple sql statements will be concatenated by a semicolon. This one sql statement will be handed over to the database. This is the supported by most of the database systems. in this mode B1i will process each sql statement one after the other. This is necessary in case the destination database system does not support semicolon separated multiple sql statements, e.g. the DB2 database system.
multiple:
sql With this tag you introduce a sql statement. You can define multiple of these tags. Whereas in the B1isql format (chapter 1.5) B1i is generating the sql statements, here the sql statement is finally generated by the vBIU. B1i will send it without any interpretation to the database system.
- 16 -
Prerequisite: The following configuration in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound] [Details]). Outbound Format: xml
- 17 -
1.4.2 CSV
<Fileout type="file"> <row> <col>value</col> <col>value</col> ... </row> ... <row> <col>value</col> <col>value</col> ... </row> </Fileout>
Prerequisite: The following configuration in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound] [Details]). Outbound Format: dsv DSV Field Delimiter: , or empty Optional Settings: The following configuration in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound] [Details]). Character Encoding: character encoding (default is ISO-8859-1) DSV-Field Wrapper: wrapper character to wrap a filed in case a value contains a comma sign. row Indicator for a row. You can have multiple of these tags. col Indicator for a column. You can have multiple of these tags. The values of these tags will be concatenated with the comma character in one line, following the order of the col elements.
- 18 -
fmode Specification of the write mode for the outbound adapter. "append creates the file if not existent, appends to the file if already existent. write creates the file if not existent and throws an exception if the file exists already. overwrite will writes the file, no matter if already existent or not. delete deletes the file whether existent or not. Nonexistence of the file to attempt to delete would be no error, but a failure on deletion if the file exists would be an error. format Specification of the outbound format. You have to insert dsv. It stands for Delimiter Separated Value. encoding Character encoding is needed to apply the technical representation of the characters according to the country or system specific needs. Available: ISO 8859-1, ISO 8859-2, ISO 8859-3, ISO 8859-4, ISO 8859-5, ISO 8859-6, ISO 8859-7, ISO 8859-8, ISO 8859-9, ISO 8859-11, ISO 8859-13, ISO 8859-14, ISO 8859-15, ISO 8859-16, US-ASCII, EBCDIC, Shift-JIS, EUC-JP, ISO-2022, GB2312, EUC-KR, Big5, Unicode UTF-7, Unicode UTF-8, Unicode UTF-16, ISO-10646-UCS2, ISO-10646-UCS4. Please choose the required one from the list. If not specified or empty, the default ISO-8859-1 is used. deli Here you specify the delimiter for the field list. The delimiter for CSV files is ,. wrap
- 19 -
Here you specify the field wrapper character. The field wrapper is optional and only used for values, containing the delimiter character (,). row Indicator for a row. You can have multiple of these tags. col Indicator for a column. You can have multiple of these tags. The values of these tags will be concatenated with the comma character in one line, following the order of the col elements.
- 20 -
1.4.4 Text
Any wellformed xml payload
Prerequisite: The following configuration in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound] [Details]). Outbound Format: txt Format Control Document: Name of the rule document in the scenario step group in the BizStore. Optional Settings: The following configuration in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound] [Details]). Character Encoding: character encoding (default is ISO-8859-1)
FileOutbound Mandatory root tag. segment The B1i Text outbound supports the definition of multiple line structures. Each segment describes the structure of one line. segment/@id The identifier of a segment. All elements in the outbound xml document with this name will be processed following the here specified rules. The generated outbound file is generated based on the order of the segment definitions.
- 21 -
field Inside a segment you can specify multiple fields and also segments. field/@id The identifier of the field. Relevant for processing are all sub-elements with this name in the outbound xml inside the element corresponding to the segment. field/@from The column where the field will start in the outbound text document. field/@len The length of the field in the outbound text document. field/@default Here you can define a default value. In case such a value exists it will overwrite the value provided by the vBIU. Inside you can also use the following variables: [lcnt]: line counter: will count up a number for each line. [mcnt]: main counter: in case a segment is a sub segment, the line counter of the father segment will be placed here. [yyyy]: This variable will be replaced by the current year (4 digits) [mm]: This variable will be replaced by the current month (2 digits) [dd]: This variable will be replaced by the current day (2 digits) [hour]: This variable will be replaced by the current hour (2 digits) [min]: This variable will be replaced by the current minute (2 digits) [sec]: This variable will be replaced by the current second (2 digits) field/@justify Specifies if the fields gets filled up from the left side (the field is right justified (R) or if the field gets filled up from the right side (the field is left justified (L). field/@fillchar Specifies the character to fill the field. In case the fillchar is defined empty, it will be replaced by blank.
- 22 -
fmode Specification of the write mode for the outbound adapter. "append creates the file if not existent, appends to the file if already existent. write creates the file if not existent and throws an exception if the file exists already. overwrite will writes the file, no matter if already existent or not. delete deletes the file whether existent or not. Nonexistence of the file to attempt to delete would be no error, but a failure on deletion if the file exists would be an error. format Specification of the outbound format. You have to insert txt. encoding Character encoding is needed to apply the technical representation of the characters according to the country or system specific needs. Available: ISO 8859-1, ISO 8859-2, ISO 8859-3, ISO 8859-4, ISO 8859-5, ISO 8859-6, ISO 8859-7, ISO 8859-8, ISO 8859-9, ISO 8859-11, ISO 8859-13, ISO 8859-14, ISO 8859-15, ISO 8859-16, US-ASCII, EBCDIC, Shift-JIS, EUC-JP, ISO-2022,
- 23 -
GB2312, EUC-KR, Big5, Unicode UTF-7, Unicode UTF-8, Unicode UTF-16, ISO-10646-UCS2, ISO-10646-UCS4. Please choose the required one from the list. If not specified or empty, the default ISO-8859-1 is used. ruledoc Here you specify the name of the Format Control Document: This document needs to be available in the scenario step group in the BizStore. For the rule document definition please refer to chapter 3.4
- 24 -
Optional: The following configuration in the outbound setup of the Scenario Step design (Scenarios Scenario Step Design [Outbound] [Details]). SOAP Action: soap action definition
queryparam Optional definition of url query parameter. Can be specified as an attribute directly in the first line of the vBIU outbound section.
<xsl:template name="transform"> <xsl:attribute name="queryparam">querykey.K0=12, querykey.K1=A</xsl:attribute>
The format is a comma separated list of key-value pairs in the format querykey.<keyname>=<value>. The example will result in the call of the destination url: url?K0=12&K1=A
SOAP Action Per default B1i hands over an empty SOAP action. Whereas this serves most of the cases, there are some older web services that need the definition of the called method via the SOAP action. For this purpose you can define the SOAP action in the outbound definition.
- 25 -
2. Preconfiguration Schemas
2.1 Scenario Package Setup Description
This xml document is required to specify the setup if you are using the B1i API to activate a Scenario Package automatically (Please refer to reference guide 05, chapter 4).
<vPacSetup xmlns="urn:com.sap.b1i.vplatform:entity" Id="package id" Status="status"> <SenderList> <Sender id="sysid" active="true"/> <Sender id="sysid" active="true"/> ... </SenderList> <ReceiverList> <Receiver id="sysid" active="true"/> <Receiver id="sysid" active="true"/> ... </ReceiverList> <vBIUList> <vBIU Id="step identifier" active="true"/> <vBIU Id="step identifier" active="true"/> ... </vBIUList> <Publish> <vBIU Id="step identifier"> <Sender Id="sysid" filter="" active="true"/> <Sender Id="sysid" filter="" active="true"/> ... </vBIU> <vBIU Id="step identifier"> <Sender Id="sysid" filter="" active="true"/> <Sender Id="sysid" filter="" active="true"/> ... </vBIU> ... </Publish> <Subscriptions> <vBIU Id="step identifier"> <Receiver Id="sysid" filter="" active="true"/> <Receiver Id="sysid" filter="" active="false"/> ... </vBIU> <vBIU Id="step identifier"> <Receiver Id="sysid" filter="" active="true"/> <Receiver Id="sysid" filter="" active="false"/> ... </vBIU> ... </Subscriptions> <TimerList> <Timer Id="step identifier" min="" hour="" day="" month="" dow="" year=""/> <Timer Id="step identifier" min="" hour="" day="" month="" dow="" year=""/> ... </TimerList> </vPacSetup>
- 26 -
SenderList Here you list all sender systems, relevant for all Scenario Steps which you want to set up. SAP allows you to define unique identifier (Sysids) for the systems in the SLD (System Landscape Directory) which can be addressed here. How to create an SLD entry via API, please refer to reference guide 05, chapter 2. ReceiverList Here you list all receiver systems, relevant for all Scenario Steps which you want to set up. SAP allows you to define unique identifier (Sysids) for the systems in the SLD (System Landscape Directory) which can be addressed here. How to create an SLD entry via API, please refer to reference guide 05, chapter 2. Publish Here you specify all publications. For each Scenario Step, you want to set up, you create a section <vBIU>. Inside you list all sender systems which you want to set up for this particular Scenario Step. With the attribute filter, you can specify a condition under which the sender message will be processed. Here you can note any xPath statement. In case the inbound is Predecessor, please specify the Sysid of the predecessor Scenario Step. In case the inbound is Internal Queue, please specify the internal B1i system SysId 0010000000. Subscriptions Here you specify all subscriptions. For each Scenario Step, you set up to publish data and which is an asynchronous step, you have to create a section <vBIU>. Inside you list all receiver systems where you want to send data to. With the attribute filter, you can specify a condition under which the receiver will receive the message. Here you can note any xPath statement. In case the outbound is Void, please specify the internal B1i system SysId 0010000000. TimerList Here you specify scheduler settings for all Scenario Step, triggered by timer. This definition is optional. In case there is no definition, the timer settings of the Scenario Step design will be taken.
- 27 -
- 28 -