Business One Integration Component
Regards,
B.Ivan
Business One Integration Component
Regards,
B.Ivan
Hi Joris,
As you mentioned, this can be achieved by intercompany solution but intercompany solution always create the draft marketing documents in the recipient company as both the companies may have different Tax structure and various other reasons( Approval Procedure, Custom Add-ons code etc.)
If you enable the multiple Branch feature in SAP Business One, then for your scenario manual intervention is required when you are duplicating the A/R Invoice to A/P invoice as duplication only copies the information on the Contents tab of the A/R Invoice to the Contents tab of the A/P Invoice.
Thanks,
Pankaj Sharma
Hi Pierre I have the same scenario, but I cant remove the xmlns="" is there ay way to remove it?
Regards
David
Hi all,
Question: When i update an B1 Object through B1i, will the sevt table fill in with this object?
I want to update a B1 object and after the update, the sevt table must be fill in with this object.
Kind regards,
Nico
Hello Experts,
I have to integrate SAP B1 with one external application built in .net.
how can i integrate through B1isn.?
There other ways like .net connector or web services which way i should choose and how i can work.
Please provide Documents or links.
Regards: Ambesh
Hi people.
This is a simple question from a B1I newbie.
How can I acquire in inbound to B1I from B1 the payload in DI API format?
I defined the B1 channel as "SAP Business One" but, acquiring, for ex., a sale order, I receive a payload like this
<ORDR>
<row>
<DocEntry>387</DocEntry>
<DocNum>387</DocNum>
<DocType>I</DocType>
<CANCELED>N</CANCELED>
<U_IOE_POG_NRDOC nil="true"/>
</row>
</ORDR>
<RDR1>
<row>
<DocEntry>387</DocEntry>
<LineNum>0</LineNum>
<TargetType>-1</TargetType>
...
instead of something like this
<Documents>, <DocumentLines>, and so on.
Could you help me?
Thanks a lot
Nicola
Hi Experts,
Recently i have upgrade our SAP system to 9.2 Pl 02,
While i try to test connect
Connect to SBO-COMMON(B1DI) failed
Detailed Information
com.sap.b1i.adapter.dia.exception.ConnectionFailedException: Connect to Business One failed.
(-8012) Company version mismatch
{b1Server=RJSQL\SQL01, company=SBO-COMMON, licenseServer=RJSQL:30000, dbType=7, dbUser=sa, userName=B1i}
Regards
I have check the SAP version and Diapi version are same 9.2 pl 02
Any idea why the error is..
Rgds
Hi Yoni,
In document draft report,Select user as B1i or All and Select Open Only check box.
Also ensure you have selected the correct date filter, if you are applying.
Thanks,
Pankaj Sharma
Hi Nicola,
at the SAP Business One Inbound the retrieval can be customized by parameter Retrieval Mode, please compare with the documentation (Help --> Online Help: search for SAP Business One Inbound):
To define the inbound definition retrieval of a scenario step, select Scenarios → Scenario Step Design →[Inbound]→ [Retrieval]. In the retrieval section, you define how you want to retrieve the data from SAP Business One.
To control inbound processing, the integration framework uses the following parameters:
Parameter
Definition
Retrieval Adapter
DI API, Service Layer or JDBC
Retrieval Type
● For DI API, you can select either Object or Service.
● For Service Layer, you can currently select Object.
● For JDBC, select SQL
If you want to retrieve more than one object, you cannot use the SQL retrieval type.
Retrieval Mode
For DI API, you have the following options:
● All with File Names (AllNodes)
Exports to XML all fields, both read only and read/write fields from the database
● Read/Write with Field Names (ValidNodesOnly)
Exports to XML only valid fields that support XML import (read/write fields only) from the database
● All with Public Properties (NodesAsProperties)
Exports to XML all fields as properties from the database. This is the default.
● Read/Write with Public Properties (ExportImportMode)
Exports to XML only valid fields that support XML import and export (read/write fields only that do not contain null values) from the database
Retrieval Control Document
- n.a. (not applicable)
Retrieval also for Del Events
To additionally receive delete events, select the checkbox. This option is only relevant for the DI API retrieval adapter.
Per default and if left empty the DI API retrieval is done by "NodesAsProperties" which is the object definition according to structure documented in Help --> B1 DI-API Object. If you switch the parameter to "AllNodes" or "ValidNodesOnly", you're getting the object retrieval with the B1 database fields.
Just change the retrieval mode of your B1 Inbound definition and reactivate your scenario.
Best regards
Bastian
Hi Nico,
per default the technical B1 user for your B1 company database as maintained in the SLD B1DI section of the integration framework (B1i), is excluded from the B1 eventing mechanism to avoid endless loops.
You could explicitly allow this technical user (B1i) to create B1 events via SEVT table, therefore check the options documented and shown in Maintenance --> Cfg B1 Event Filter.
Best regards
Bastian
P.S.: an alternative is to work with a successor step.
Hi Nico,
for more comprehensive SQL statements, please use the option to handover the statement from a predecessor XFORM instead of using the editor in the SQL atom itself.
Please check documention Help --> Online Help: search for Call SQL Atom and check for handover Entering an Atom Identifier
To provide the SQL statement or statements in the Default SQL Statement field, you have the following options:
Directly Entering the SQL Statement
Directly enter the SQL statement or statements in the input field.
Enter, for example, #select ItemCode, ItemName as 'Name' from OITM where ItemCode = 'A00003'
If a value in an SQL statement contains a ‘ (single quote), for example, ’23’5’, the SQL statement does not interpret it correctly and only considers ’23’. The SQL call fails. To hand over the correct value, double the single quote: ’23’’5’
Alternatively, use the utils2:handleSQLString(string()) function when providing the SQL statement in an XSL transformation atom. For more information about handling single quotes, see section 7 Preventing SQL Injections
If a database contains special characters in tables that are not Latin, but for example Hebrew, use the Ncharacter in the WHERE clause of an SQL statement to include the special characters.
Enter, for example:
SELECT T2.E_MAIL as FromEmail FROM OUSR as T2 WHERE T2.USER_CODE=N'$userid'
Entering an Atom Identifier
Enter the name of an XSL transformation atom that contains the SQL statement or statements. Enter, for example, #atom4.
In atom4, provide the SQL statement in the <sql> tag, for example:
<sql xmlns="">select ItemCode, ItemName as 'Name' from OITM where ItemCode = 'A00001'</sql>
The procedure also supports you in processing large SQL statements. For more information, see section 6 of the document
Entering an XPath Statement
Enter an XPath that points to the SQL statement in the XSL transformation atom.
Enter, for example, /vpf:Msg/vpf:Body/vpf:Payload[./@id='atom4']/xpath
The XPath points to the <xpath> tag in atom4 that contains the SQL statement. atom4 is an XSL transformation atom.
In atom4, enter the SQL statement in the following way:
<xpath xmlns="">select ItemCode, ItemName as'Name' from OITM where ItemCode = 'A00002'</xpath>
If values in an XPath statement contain a string that starts with ! (exclamation mark) and ends with _ (underscore), the integration platform (B1iP) interprets it as a variable and the SQL statement does not work. To avoid errors at runtime, do not enter the XPath statement in the input field. Instead, enter the transformation atom identifier, for example, #atom4. In the XSL transformation atom, enter the statement in the <sql> </sql> tag.
To avoid out of memory errors at integration framework runtime, the integration framework in general reduces SQL statements to 1000 characters in the return payload.
optionally you could also handover by Entering an XPath Statement.
Best regards
Bastian
Hi Luca,
we're planning to fix it with an upcoming release.
Best regards
Bastian
Hi,
it's a warning message, as it's not recommended to have one step's name as part of another step's name running in the same scenario package.
Please definitely avoid it if both steps are defined as queue inbound or predecessor inbound.
As in the sap.B1Mobile scenario package step "sap.MobileCacheRefreshW" is the only queue inbound step, you can ignore this warning.
best regards
Bastian
Hi,
I assume your http call needs an authorization.
If not please fill parameter "authentification" with "none". If your company is working with a web proxy, please fill it accordingly, please also check the firewall settings.
Best regards
Bastian
Hi Nicola,
please check the retrieval mode in the inbound definition, for DI API, you have the following options:
Exports to XML all fields, both read only and read/write fields from the database
Exports to XML only valid fields that support XML import (read/write fields only) from the database
Exports to XML all fields as properties from the database. This is the default.
Exports to XML only valid fields that support XML import and export (read/write fields only that do not contain null values) from the database.
The green marked retrieval modes are using the DI object structure, the red ones are using the database fields structure.
If nothing is entered explicitly, All with Public Properties (NodesAsProperties) is defaulted.
Best regards
Bastian
P.S.: please compare it with actual documentation of Help --> Online Help, search for SAP Business One Inbound.
Hi,
please check the syntax of your xpath.
Following is taken from the receiver filter documentation:
Configuring Receiver Filter Definitions
To exclude receiver systems for some scenario steps or to define a condition, under which the integration framework sends messages, select Maintain Sender Filter Definitions. The integration framework displays all scenario steps, each with all applicable and selected receiver systems. You have the following options:
● To exclude a receiver system for a scenario step, enter no in the input field or deselect the scenario step.
● To define a condition for a receiver system and a scenario step, enter the XPath expression in the input field. You can use the $msg variable for the incoming sender message, for example,$msg/root/@flag=’A’.
NOTE
To use individual namespaces, define them in scenario step design.
Namespace
If the step uses an individual namespace, click the button to display the namespace.
Filters are normally defined based on the sender payload and not by the Header information of the message.
Best regards
Bastian
P.S.: /vpf:Msg/vpf:Header/vpf:ReceiverList/vpf:Receiver[./@handover='P']/@Id is only relevant if the scenario step is running on receiver side: It marks the actual receiver of the message, an additional filter would probably have no extra benefit.
Dear Gurus,
My SAP B1 version is 9.1 PL09 32-bit, and the version of Intercompany Add-on 2.0.16.0
The intercompany Solution work fine on my testing environment for over 2 week, but yesterday it crashed. I have checked these thing and everything and it all working, but there are still no transaction are synced:
- Connection to JDBC, B1DI are connected
- Event sender working fine
- All service are turned on
When I look up to Message log, the transactions status are filtered and stuck, with the message : “No Scenario Step (vBIU) Assigned for Step for Sender System (SysId)”.
As going though some theard, I need to setup in Scenarios -> Setup/Step design, but I am not sure what to do here in case of Intercompany Scenario.
Please give me advice or any document related to this situation.
Many thanks.
Thanks, this solved my problem as well!