B1 I FW04 Operations
B1 I FW04 Operations
Integration framework
for SAP Business One
Guide 04
Operations
-1-
Content
1. Scenario Administration ...............................................................................4 1.1 Setup & Activation ..................................................................................4 1.1.1 Setup Screen ...................................................................................5 1.1.2 Scheduler Settings...........................................................................6 1.1.3 Scenario Steps ................................................................................8 1.1.4 Sender and Receiver .......................................................................9 1.1.5 Activation and Deactivation............................................................13 1.2 Control..................................................................................................18 1.2.1 Scenario List ..................................................................................19 1.2.2 Scenario Step List..........................................................................22 1.2.3 Object List......................................................................................23 1.2.4 Sender Object List .........................................................................23 1.3 Configure the B1 Event Filter ...............................................................25 1.4 Import and Export.................................................................................27 1.4.1 Import a Scenario Package............................................................27 1.4.2 Export a Scenario Package ...........................................................28 2. Monitoring ..................................................................................................29 2.1 Message Log........................................................................................29 2.1.1 Message Log List...........................................................................31 2.1.2 Flow Analysis.................................................................................33 2.1.3 Flow Debugging.............................................................................35 2.1.4 Error Inbox .....................................................................................39 2.1.5 Last Exception ...............................................................................40 2.2 Process Control....................................................................................41 2.3 Queue Monitor......................................................................................43 2.4 Safe Mode ............................................................................................45 3. System Administration ...............................................................................46 3.1 System Information ..............................................................................46 3.2 Import of Content..................................................................................47 3.3 Configuration of Message Log..............................................................47 3.4 User and Session Administration .........................................................51 3.4.1 User Administration .......................................................................52 3.4.2 Session Control .............................................................................54 3.4.3 Authentication Events ....................................................................56 4. System Landscape Directory .....................................................................58 4.1 SAP Business One...............................................................................59 4.2 SAP ERP..............................................................................................62 4.3 File System...........................................................................................65 4.4 HTTP System .......................................................................................68 4.5 Web Service .........................................................................................70 4.6 Database System .................................................................................72 4.7 FTP System..........................................................................................72 4.8 Mail System..........................................................................................73 5. Performance ..............................................................................................74 5.1 Memory ................................................................................................74 5.2 Network Connection .............................................................................74
-2-
5.3 Event Sender configuration ..................................................................74 5.4 Integration framework configuration .....................................................75 6. Security......................................................................................................76 6.1 Integration framework and BizStore Connection ..................................76 6.2 Administration User ..............................................................................78 6.3 Incoming HTTP calls ............................................................................79 6.4 Connection to SAP Business One........................................................81 6.5 Event Sender Connection to Integration framework .............................82 6.6 Event Sender Connection to SAP Business One .................................82 6.7 Connect to other Clients .......................................................................83 Copyrights, Trademarks, and Disclaimers .....................................................84
-3-
1. Scenario Administration
The Integration framework allows you to maintain and control your Scenario Packages browser based from any location via the administration user interface. You can get an overview of all available Scenario Packages, on demand you can zoom in to all details, you can setup, activate and deactivate the Scenario Packages and you have the option to import or export them.
In case the Scenario Package is in Design mode, you can do any changes, assumed you have the rights to do so. The Scenario Steps are running in the test environment only and are not responding to any incoming call. During setup, the Scenario Package will be configured. All used Scenario Steps are specified, the sender and receiver systems are selected and the necessary parameters are defined. Modifications in the design of particular Scenario Steps are still allowed. In case you did some changes, influencing the setup, you have to modify the setup accordingly. The Scenario Steps are running in the test environment only and are not responding to any incoming call. In Active mode, the Scenario Package is configured and activated. Modifications are no longer allowed. The Scenario Steps are running in the test environment and are also responding to the incoming call. If you import a new Scenario Package, the package will be in Design mode.
-4-
The SAP Integration framework setup supports three different installation modes to optimize the deployment. It depends on the concrete Scenario Package which of the installation modes will be used. An upload installation will just upload the Scenario Package which will be afterwards in Design mode. A preconfigured installation will setup the package automatically. With finishing the installation, the Scenario Package will be set up.. The automatic installation will setup and activate the Scenario Package. The preconfigured and automatic installation will typically also create the required entries in the System Landscape Directory (SLD) automatically.
Scenario Package Identifier This read-only field displays the identifier for the Scenario Package. Please click the corresponding button to open a drop-down list with all available Scenario Packages. Version This read-only field displays the version of the selected Scenario Package.
-5-
Status This read-only field displays the current status of the selected Scenario Package. The status is one of the values design, setup, active. Scenario Steps This read-only field displays how many Scenario Steps of the selected Scenario Package are currently selected and the total number of Scenario Steps, assigned to the selected Scenario Package. The example above shows a Scenario Package which consists out of five Scenario Steps in total and currently no one is selected for setup. Sender System Types This read-only field displays all types of sender systems, involved in at least one of the Scenario Steps, belonging to the Scenario Package. Receiver System Types This read-only field displays all types of receiver systems, involved in at least one of the Scenario Steps, belonging to the Scenario Package.
-6-
Here you can see the current valid timer settings for all selected Scenario Steps, assigned to the current Scenario Package. If you want to change some settings, please click the [Setup] button.
The scheduler definition is following the CRON syntax, typically known from job scheduler in unix-like computer operating systems. A CRON entry has six fields for specifying day, date and time. The Scenario Step will be triggered always when all entries are true. The entries are interpreted in the system time zone setting under which the Integration framework itself is running. Scheduler (minute) Here you specify the value for the minute part of the time. The value can have a * or a list of elements separated by commas. An element is either a number in the range 0 to 59 or two numbers in the range separated by a hyphen (meaning an inclusive range). Scheduler (hour) Here you specify the value for the hour part of the time. The value can have a * or a list of elements separated by commas. An element is either a number in the range 0 to 23 or two numbers in the range separated by a hyphen (meaning an inclusive range). Scheduler (day) Here you specify the value for the day part of the date. The value can have a * or a list of elements separated by commas. An element is either a number in the range 1 to 31 or two numbers in the range separated by a hyphen (meaning an inclusive range). -7-
Scheduler (month) Here you specify the value for the month part of the date. The value can have a * or a list of elements separated by commas. An element is either a number in the range 1 to 12 or two numbers in the range separated by a hyphen (meaning an inclusive range). Scheduler (day of wek) Here you specify the value for the day of the week. The value can have a * or a list of elements separated by commas. An element is either a number in the range 0 to 6 (Sunday = 0) or two numbers in the range separated by a hyphen (meaning an inclusive range). Scheduler (year) Here you specify the value for the year part of the date. The value can have a * or a list of elements separated by commas. An element is either a number, specifying a year (e.g. 2010) or two numbers in the range separated by a hyphen (meaning an inclusive range).
Here you can use the all checkbox to check/uncheck all Scenario Steps. After selection, please use the [Save] button to store your selection.
-8-
As an example you can see a concrete SAP Business One company, which is a Sender system, publishing all changes of e.g the object Business Partner. The Integration framework will distribute this entity to all registered Scenario Steps. Per Scenario Step a sender filter (IN Filter) will be checked before processing. After processing the message will be sent to all subscribed Receiver systems (e.g. another SAP Business One), but also here the message will be filtered out in case the receiver filter (OUT Filter) condition is not fulfilled. Even if typically scenarios are quite simple, sending a message from one system via one registered Scenario Step to one receiver system even without any sender or receiver filter, the full support of the Publish-Subscribe mechanism allows you all kind of even complex setups. In case you do not need any filter, you can just setup the sender and receiver systems without touching the filter definitions.
-9-
[Sender] If you click the [Sender] button in the setup screen, the following drop-down list will pop up. Please select the operation you want to run.
Maintain Sender List The following generated screen will open, listing all relevant Sender systems, defined in your System Landscape Directory (SLD). You will find in the list all systems of the type that is specified as sender system for at least one of the Scenario Steps, assigned to the current Scenario Package.
Here you can use the all checkbox to check/uncheck all Sender systems. After selection, please use the [Save] button to store your selection. The Sender systems are ordered by system type, logical address (SysId) and name.
Maintain Sender Filter Definitions The following generated screen will open, listing all Scenario Steps, each with all applicable and selected Sender systems. You need this screen in case you want to exclude particular Sender systems for some Scenario Steps or in case you want to define a condition, under which the incoming message will be accepted. Exclusion: If you want to exclude a particular Sender system for a particular Scenario Step, just type into the field the string no.
- 10 -
Condition: If you want to define a condition for a particular Sender system for a particular Scenario Step, please enter the xpath expression into the field. You can use the variable $msg for the incoming sender message (e.g. $msg/root/@flag=A). Please notify in case you want to use own namespaces, these have to be defined in the definition of the particular Scenario Step.
[Receiver] If you click the [Receiver] button in the setup screen, the following drop-down list will pop up. Please select the operation you want to run.
Maintain Receiver List The following generated screen will open, listing all relevant Receiver systems, defined in your System Landscape Directory (SLD). You will find in the list all systems of the type that is specified as receiver system for at least one of the Scenario Steps, assigned to the current Scenario Package. Here you can use the all checkbox to check/uncheck all Receiver systems. After selection, please use the [Save] button to store your selection. The Receiver systems are ordered by system type, logical address (SysId) and name. - 11 -
Maintain Receiver Filter Definitions The following generated screen will open, listing all Scenario Steps, each with all applicable and selected Receiver systems. You need this screen in case you want to exclude particular Receiver systems for some Scenario Steps or in case you want to define a condition, under which the outgoing message will be sent. Exclusion: If you want to exclude a particular Receiver system for a particular Scenario Step, just type into the field the string no. Condition: If you want to define a condition for a particular Receiver system for a particular Scenario Step, please enter the xpath expression into the field. You can use the variable $msg for the incoming sender message (e.g. $msg/root/@flag=A). Please notify in case you want to use own namespaces, these have to be defined in the definition of the particular Scenario Step.
- 12 -
The processing inside the Integration framework is done via Scenario Process Steps. These steps are generic per system. For each system, specified in the System Landscape Directory (SLD) and used in at least one active Scenario Step, there are generic Scenario Process Steps available to cover the processing inside the Integration framework. Different to other integration solutions where you have to generate inbound and outbound proxies for each integration scenario (which is a Scenario Step in the Integration framework), the Integration framework is working with generic process steps which are shared by multiple, different Scenario Steps. As an example the Integration framework runtime supports one B1 Inbound process step. This is covering in a generic way the inbound processing for an SAP Business One system. All Scenario Steps, independent from which vendor, which have an SAP Business One system defined as the sender system, are using this process step. When you set up a Scenario Package, you have to specify concrete sender and receiver systems. The activation will then create an instance of the process step B1 Inbound for each SAP Business One system that is defined as a sender system. In case an instance for a particular SAP Business One is active already caused by another Scenario Step, this instance will be shared. As all process steps are generic, also the inbound processes for the different system types are generic. This is the reason why you have to specify the identifier in the Scenario Step Inbound definition. Please refer to reference guide 02, chapter 3.1.1 for further details. All types of Scenario Process Steps are defined in the reference guide 02, appendix C Table of Process Steps.
- 13 -
Example
The example above is describing two different Scenario Steps, possibly belonging to two different Scenario Packages. Scenario Step S1 is sending sales orders from SAP Business One to a file system whereas the Scenario Step S2 is sending business partner data from SAP Business One into a database system. As both Scenario Steps are set up for the same SAP Business One system in the System Landscape Directory (SysId 0010000100 in SLD) and both are triggered by an event from SAP Business One, they are sharing the Process Steps for B1 Inbound, Processing and Distribution. The Process Steps for the outbound phase are different as one Scenario Step is sending data to a file system, the other one into a database. The following processes will be created: Process Steps, shared by Scenario Step S1 and S2 0010000100.INB_B1_EVNT_ASYN_EVT (B1 Inbound) 0010000100.PRC_B1 (B1 Processing) 0010000100.PRQ_B1 (B1 Distributor) Process Steps for Scenario Step S1 0010000102.OUT_FILE (File Outbound) 0010000105.OUT_FILE (File Outbound) Process Step for Scenario Step S2 0010000108.OUT_DB (Database Outbound)
- 14 -
[Activate/De-Activate] The button label will change automatically based on the current mode. When you click the [Activation] button, first the Integration framework will check the consistency of the setup and will show up the result in a new window. The activation is possible only if there is no error in the setup. In case the setup is not consistent, please click the [Report] button to check further details.
The report Setup Details lists all Scenario Steps and displays the number of sender systems and receiver systems and its status. In case of an error in setup, the [Info] button opens an alert with the error message. It gives you a hint, e.g. that there is no sender system specified for the Scenario Step.
- 15 -
Once the setup is consistent, the [Activate] button is active. If you close the window, the Scenario Package is still in Design mode and nothing is changed. After clicking the [Activate] button the Integration framework is preparing for activation. At the end an alert will pop up.
After clicking OK, the activation screen is updated, displaying the following window
The [Info] button gives you a quick information about the current status. The [Deactivate] button will deactivate the Scenario Package. With the [Report]
- 16 -
button, you can run all existing reports of the activation process. These reports are also always available from the Scenario Package Control screen. Setup Details Setup Report Activation Report
The Setup Details list is the same list, available from the first activation screen before activation. The Setup Report lists all Scenario Steps and gives you optional via the [info] button the possibility to check which technical processes are set up for this particular step.
The Activation Report is sorted by Scenario Steps and lists all processes (IPO steps), which are set up.
- 17 -
The overall Status is displaying if the complete Scenario Package is set up consistent to other Scenario Packages. There are the following constellations which will lead to an error during activation (Activation Conflict): File Inbound: There are Scenario Packages already active for the same Sender Channel (file inbound) with a different ruledoc definition for file inbound. HTTP/Web Service Inbound: There are Scenario Packages already active for the same Sender Channel (http inbound, ws inbound) with a different authorization model.
If this happens, please deactivate all Scenario Packages and solve the conflicts first before you activate all Scenario Packages again. You can harmonize the involved Scenario Steps by defining the same rule doc for all steps resp. defining the same Authorization concept for all involved Scenario Packages The easiest way is to use different file inbound, resp. http/web service inbound SLD entries for the different Scenario Packages resp. Scenario Steps.
1.2 Control
The control screen allows you the full control of all available Scenario Packages. You can run reports for different views, you can dive in to all details and you can call the design and setup screens. Scenarios Scenario Package Control Report There are four reports available. Please use the corresponding button to select the required report from the list. The Scenario List is the default when you enter the control screen. Scenario List Scenario Step List Object List Sender Object List
Status You can filter the reports by status. Default is no filter (- all -). If you want to filter, please click the corresponding button to select the required status (all-, design or active).
- 18 -
[Report] Clicking this button opens a new browser window with the selected scenario report.
- 19 -
[Info] This function gives you a very quick option to check the basic information of a Scenario Package, which is a short description, the vendor information, the current version, the date of the last modification and the Scenario Steps, specified in the Scenario Package Design screen.
[Docu] This optional function will load a Scenario Package documentation, provided by the vendor of the .Scenario Package. Prerequisite is a documentation with the name vPac.pdf in the base directory of the Scenario Package (/com.sap.b1i.vplatform.scenarios.design/vPac.name).
- 20 -
[Overview] The Overview function opens a new browser window and displays all Scenario Steps, belonging to the Scenario Package. The overview list displays the Scenario Steps in a graphical manner. Each line represents one Scenario Step. Icons are symbolizing the sender/receiver system type. Asynchronous Scenario Step will display the 3 processing phases Inbound, Processing and Outbound whereas synchronous Scenario Steps will have Inbound and Processing only.
Inbound The Inbound box is displaying the most important inbound information. If you click on it, a window opens with the screen for Scenario Step Inbound Design. Closing the window will update the base window to visualize modifications. The information, displayed on the box is: Inbound Channel Communication Mode (asynchronous or synchronous) Trigger Event Identifier
For further information regarding the screen for Scenario Step Inbound Design, please refer to Integration framework reference 02, chapter 3.1.
Processing The Processing box is displaying the number of processing steps. If you click on it, a window opens with the graphical process designer. For further information regarding the graphical process designer, please refer to Integration framework reference 02, chapter 3.3.
Outbound The Outbound box is displaying the most important outbound information. If you click on it, a window opens with the screen for Scenario Step Outbound
- 21 -
Design. Closing the window will update the base window to visualize modifications. The information, displayed on the box is: Outbound Channel Adapter Data handover details Successor Scenario Step if relevant
For further information regarding the screen for Scenario Step Outbound Design, please refer to Integration framework reference 02, chapter 3.2.
The Scenario Steps are listed in alphabetical order. In the second column you see the hosting Scenario Package. The Status column displays the status of the particular step. design active design (active) Scenario Package is in design status Scenario Package is in active status Scenario Package is in active mode, but this Scenario Step was not selected and is in design mode.
- 22 -
The list is in alphabetical order, showing the subscribed Scenario Step, the hosting Scenario Package and the status of the Scenario Step. The list helps you in case a particular incoming call will end in a filtered message due to missing subscribed Scenario Steps. In this case you can check if a Scenario Step exists at all for the relevant object resp. event (e.g. an incoming event for a Business Partner modification from SAP B1). The Status flag is indicating if the particular Scenario Step is activated as only an activated Scenario Step will process the message. The list shows also if perhaps multiple Scenario Steps are subscribed to the same object resp. event. The Integration framework allows this technically, but its always a question of business logic if it makes sense or not, especially if the Scenario Packages are delivered by different SAP partner.
- 23 -
The list is in alphabetical order (Sender and Object), showing for each Sender-Object/Event combination the subscribed Scenario Step, the hosting Scenario Package and the status of the Scenario Step. The list helps you in case a particular incoming call from a particular sender system will end in a filtered message due to missing subscribed Scenario Steps. In this case you can check if a Scenario Step exists at all for the relevant object resp. event (e.g. an incoming event for a Business Partner modification from SAP B1). The Status flag is indicating if the particular Scenario Step is activated as only an activated Scenario Step will process the message. In case youll find sender-object combinations with activated Scenario Steps, but the concrete sender, you are checking, is missing, please deactivate the Scenario Package, add the missing sender system to the sender list and activate the Scenario Package again.
- 24 -
Maintenance
B1i User Filter always switched on This checkbox is checked by default which activates the filtering of incoming events from SAP Business One, caused by the B1i user. The B1i user is the user that is specified for the login to the particular company database of SAP Business One in the System Landscape Directory. Please refer to chapter 4.1 of this reference guide (Parameter userName). If you uncheck this box, you can specify the filter exclusion fields by using the selection button . All drop down lists are multi-select lists which allows you to select multiple entries by clicking ctrl and right mouse click. The definition of
- 25 -
all three exclusion fields will be checked and an event is processed in case all three conditions are true. Excluded B1 Systems Here you can choose all B1 systems, defined in the System Landscape or one or multiple particular systems. Excluded B1 Objects Here you can choose all B1 objects of SAP Business One or one or multiple particular objects. Listed in the drop down list are all standard objects of SAP Business One. In case you want to add own objects or user defined tables, you can just add them, comma separated, in the list. Excluded B1 Tasks This allows you to specify exclusion based on the task where the event refers to. You can select all tasks if the exclusion is valid for all events or you can select one or many particular tasks. I stands for Insert, U stands for Update and D stands for Delete.
[Save] With the Save button, you can save your settings.
- 26 -
Name of Scenario Package zip file Please use the [Browse] button to select the zip package from your file system. [Submit!] Click this button to start the import of the Scenario Package from the file system into your B1i Bizstore. The location (dataset and group) is calculated automatically by information in the zip package. Please notify that existing documents will be overwritten without confirmation. - 27 -
Scenario Package identifier Please use the button to select the required Scenario Package which you want to export. Add test message You can check this check box if you want to export also existing test messages. If this is unchecked, the test messages will not be inserted into the zip package. Typically test messages are tailored for a particular test situation, therefore the default is unchecked.
[Export] Click this button to start the export of the Scenario Package from the B1i Bizstore to the file system. All related documents will be collected and packaged to one zip file. Then the standard windows dialog will open to store the file to a location of your choice in your file system.
- 28 -
2. Monitoring
As a main instrument for analyzing the running Scenario Steps, the Integration framework allows you to monitor messages and processes. Here you have numerous possibilities to analyze even the smallest details.
In addition to the log level, you can switch on or off the production of detailed debug information. The debugging you switch on via the Process Control screen for all or a particular process. Please refer to chapter 2.2. For a productive environments, its recommended to switch off the Message log or to switch it on with the lowest level (Infoset). In case you introduced new Scenario Steps, it could make sense to switch on the full Message Log (Full message) in the beginning phase. For productive environment its strongly recommended to switch of the producing of debug information as this can slow down the performance. In case you are in design phase, you should switch on the debugging except you want to run some performance tests. The debugging is also very helpful for trouble shooting in case of a failure during processing. It allows you access to the deepest details of the processing. In case you switched on the Message Log, its strongly recommended to schedule the automatic daily deletion (please refer to chapter 3.3) whereas the debugging information will get deleted automatically without any configuration through the inbuilt garbage collection.
- 29 -
Please call the Message Log from the Integration framework administration console. Monitoring Message Log
The upper frame of the screen allows you to define a filter of the messages you want to list, to trigger the display of messages, to open the Error Inbox and to check the last exceptions during processing. Herewith you have all tools on one place for an efficient overview till to a very deep dive (depending on the existing debug information).
In case you have a huge load of messages, you should use the fields to filter the messages, you want to list. From Here you can define the start date for the range. The format is always YYYYMM-DD and in the second field HH:MM:SS. When you start the monitor, it is set automatically to today 00:00:00. To Here you can define the start date for the range. The format is always YYYYMM-DD and in the second field HH:MM:SS. When you start the monitor, it is set automatically to today 23:59:59. Sender System Here you can select a particular sender system from your System Landscape Directory. Receiver System Here you can select a particular receiver system from your System Landscape Directory. Sender Trigger/Object Here you can select a concrete identifier for an entity which triggered the message processing. It can be an identifier for an object, for a trigger, etc. In the drop down list you will get listed all defined trigger/objects, specified by Scenario Steps, available in your Integration framework not considering if these are active or in design phase.
- 30 -
Receiver Object Here you can select a concrete identifier for a receiver object. In the drop down list you will get listed all defined trigger/objects, specified by Scenario Steps, available in your Integration framework not considering if these are active or in design phase. Status Here you can filter on the message status. The message processing starts always with the status Processing and ends in one of the three status results Success, Failure or Filtered.
There are 4 sections to host the messages dependent on their status. This status can change as the message starts always with the status Processing and ends in one of the three status results Success, Failure or Filtered. Sender System The name of the system which sent the message. Displayed is the name, defined in the System Landscape Directory. Sender Trigger/Object The identifier of the Sender Trigger/ObjectType Receiver System The name of the system which received the message. In case a message is sent to multiple receiver systems, you will have multiple entries in the table, for each of the receiver systems. In case a message processing is creating multiple receiver objects, you will have multiple entries in the table, for each of the receiver objects.
- 31 -
Start Date Time Timestamp in the format YYYY-MM-DD HH:MM:SS of the point of time when the message entered the Integration framework the first time. Please consider that the start time will not be changed in case you are re-sending a failed message from the Error Inbox (chapter 2.1.2). End Date Time Timestamp in the format YYYY-MM-DD HH:MM:SS of the end of the message processing. Please consider that the end time will changed in case you are re-sending a failed message from the Error Inbox (chapter 2.1.2). S Current status of the message. Result Message Here you will have different information, depending on the message status. To enlarge the field, just double-click on the field. In case the status=Success, the result message shows the reply of the insert method of the receiver system. E.g. for SAP Business One in case of an insert, you will see the generated primary key, in case of an update an empty result. In case the status=Failure, the result message contains the original return error message from the receiver system. In case status=Processing the field is empty. In case the status=Filtered, you will find the reason for the filtering, set by the normal processing or in case the filtering is done by the logic of an an own Scenario Step logic (please refer to reference guide 05), the individual message will be displayed.
Clicking this icon will open a new window, displaying the current status of the processed message, typically the final status. This allows you a first analysis of the processing, the original call and the response. Please consider that you will have this information only if the Message Log is switched on and the level is set to Full message. Please refer to chapter 3.3.
Clicking this icon will open the Flow Analysis screen (please refer to chapter 2.1.2) with all necessary options for a deep dive. Please consider that you have meaningful information only if you switched on the producing of detailed log information before the message processing started. Please refer to chapter 2.2. how to set up processing with debug log level.
- 32 -
The order is from bottom to top. In our example the starting process is INB_B1_EVNT_ASYN_EVT. This process triggered the two follow-up processes PRC_B1 which are handing over the message to the file system (via the process OUT_FILE) and to void (via process VOID). Please refer to reference guide 02, appendix A (Table of Inbound Channels). There are 7 buttons for each process to address specific analysis operations. The most important for trouble shooting is the [Debug] button.
[IPO-Log] The IPO-Log will open a window to display detailed processing information. Prerequisite is the production of detailed log information. In case of an error/exception in the Integration framework you will find the error information and call stack at the end of this list. [MsgFlow Inq.] In case of complex processing flows where a message is subscribed by multiple different Scenario Steps which are sending data to multiple receiver system with optional multiple receiver messages, the processing inside the Integration framework will end up in a tree. With the message flow inquiry option you can follow this processing tree on low level, skipping to the first step and from successor to successor. For each step you will get the full flow analysis screen.
- 33 -
[MsgProcTmng.] This button opens an analysis window, listing the particular process and the processing time. It also shows the follow up steps including the execution details. [ExecDetails] This button lists all single steps of the processing in one document. It allows you to search for concrete steps, check the inbound parameters and the inbound message for all single steps. This analysis is typically used by experts. More easy and intuitive you can access this information via the [Debug] button in a graphical way. [Debug] Here you open the flow debugging window. It allows you to check the processing flow incl. zoom-in to sub flows, it displays the duration time and the size of the inbound message for each singular step. In addition it allows you to open a particular step inbound message. For details please refer to chapter 2.1.3. [Profiler] The profiler allows you to check potential performance issues. There are three sections in the analysis list. First it lists all single processing steps with processing details, sorted by the duration time. Second it lists all internal db interactions, sorted by duration time and third, for all processing steps, it lists the size of the inbound message sorted by size. [Delete] The [Delete] button will delete the log entry. In case the transaction is still running (status INCOMMIT, INROLLBACK), it will cancel the transaction.
Graphical View This link opens a window to display the processing logic in a graphical manner.
- 34 -
You can see the starting point of the whole message flow on the upper left side. Here the inbound processing step is triggered. You see the channel identifier, the channel name and the identifier (e.g. trigger id or object id). Synchronous Processing All synchronous processing flows will have only this one of processing step as they are sending back the response to the caller. Your own developed Scenario Step is processed inside this one processing step. Asynchronous Processing All other asynchronous processing steps will, hand over the message to follow-up steps via the B1i internal queues. The Queue Monitor (chapter 2.3.) allows you to check messages in the internal queue. In the graphic you can see the concrete name of the handover queue and the stream (sub queue). The follow-up processing depends on the concrete Scenario Packages, set up in your environment. For each Scenario Step that is subscribed to the incoming message, there will be a processing step (PRC_*). In case there are more than one step, the box will be grey and you can use the [Select] button to select the Scenario Step, you want to debug. Your own developed Scenario Step is processed inside this processing step. In case there is one receiver system, the distribution step is not passed through which is indicated by a white box. In case there are multiple receiver systems, you can use the [Select] button to select the receiver system processing, you want to debug. The last processing step is the outbound for the particular receiver systems. In case there is one receiver object, the box is coloured, otherwise it will be grey and you can use the [Select] button to select the receiver object processing, you want to debug.
When you click on a coloured processing box, a window will open with the flow debugger. Please refer to the next chapter 2.1.3.
- 35 -
The following status values are possible: STARTED (transaction is started) INCOMMIT (transaction is finished on B1i side and waits for commitment) INROLLBACK (transaction fails and is in roll back phase) COMPLETED (transaction finished succesfully) CANCELED (transaction finished with exception)
By clicking the status you open a small window with processing overview data, listing the total duration time, the size of the incoming message, the max size of the message during processing, the size increase i n percentage and the timestamp of processing.
- 36 -
This first screen is displaying the main flow. Each of the flow functions (atoms) is displayed as a pictogram. There are two types of flow functions (Include and vBIU Call) which are calling sub-flows. These sub-flows you can open in a new window by clicking the pictogram.
Similar to the XSL choose construct, the Branch atom allows a conditional processing. Unlike the XSL choose, the Branch atom is processing all Path streams, where the condition is true.
, , The Path is defining the processing stream depending on a particular condition. The Otherwise stream gets performed in case no one of the Path conditions is true. Always defines a processing stream that always gets processed.
The For-Each atom is running possibly multiple times for each sub-tree that is specified in the inbound document. The Join atom combines all processing outbound documents to one document.
, The Include atom includes a sub processing flow. The vBIU-Call is a special Include atom, which is calling directly or indirectly the Bizflow of the particular Scenario Step. By clicking this pictogram, you can open a new window, displaying the sub-flow. This option is only enabled in case the particular atom is part of the current processing flow and works only in case the definition of the included flow is explicitly defined. In case the included call is specified relatively to the inbound document, the inclusion is not possible.
- 37 -
The Call atom allows you to set up any call to an internal or external source, e.g. writing a file into the file-system, retrieving data from SAP B1, handing over data to SAP ERP or retrieving data from a database. SingleCall and MultipleCall are special Call atoms to call systems, specified in the system landscape directory. These atoms guarantee a well-formed B1iMessage in placing the call result in the B1iSN message body.
, The Persist atom is storing or reading XML documents to/from the BizStore or retrieving directory information from the BizStore. The grey arrows are displaying if the operation is read or write.
In addition to these atomic processing steps the Integration framework provides high-level processing atoms. These atoms are very helpful to perform particular tasks, e.g. a call to SAP ERP or against the database. These additional atoms and the complete Bizflow language is described in the reference guide 02, chapter 3.3.3.
Each pictogram of a flow function gives you particular information of the processing. is indicating that this particular flow function was processed. By clicking the arrow you can load the inbound XML document for this flow function. In case there is an exception during the processing you can see the location of the last step in the flow because the last step will be the step with the last red arrow. is opening a window with information about the particular flow function. The type of information is different depending on the type of flow function. E.g. for the Xform atom, you can check the called XSL stylesheet, for the Path you can check the condition. xxxx ms [n] nnnn is providing analytic processing information. xxxx displays the duration time in milliseconds. [n] displays the number of calls of the particular atom and nnnn displays the size (in byte) of the inbound document of this particular atom.
- 38 -
You will see an entry for each system in your System Landscape Directory. In the right column, you see how many failed messages are available in the particular error inbox. If there is no failed message available for a system, you see the icon. In case there are failed messages available, you will see the red icon and the system identifier/name is a link. Please click on it to open the particular error inbox for this system.
- 39 -
The error inbox opens in a new window and displays all failed messages in a list. Per line there is one message, displaying the message identifier, the receiver object the timestamp when the error occurred and the detailed result/error message. With double-click you can expand the result/error field. If you click on the message identifier a window will open, displaying the failed message. You can check/uncheck one or multiple messages and perform one of the two actions. [Delete] Clicking this button will delete all checked messages in the particular error inbox. [Retry] Clicking this button will re-send all checked messages.
- 40 -
[Ping] Open the connection check to test the connections available for the particular processing step. [(Re)Activate], [De-Activate] With these buttons you can re-activate, activate or de-activate the current processing step, depending on the current status. Please refer also to chapter 2.2 for activation/deactivation of processing steps. TID This filed is displaying the transactional identifier of the failed message. Clicking this link will open the flow analysis screen (please refer to chapter 2.1.2).
- 41 -
There are four sections in the processing control list, categorizing different types of process steps. Scenario Processes Inbound Scenario Processes Processing Scenario Processes Outbound Framework Processes
Whereas the first three sections are listing processes, related to the individual message processing, the last section is listing internal processes of the Integration framework. The framework processes are possibilities for trouble shooting which allow the necessary insides of internal processing. For standard operations only the scenario processes are relevant. Each section of the scenario processes starts with section function buttons which allow you to perform a particular action for all scenario process steps in this section. The following section operations are available: [Activate], [Deactivate] Clicking this button will activate/deactivate all processing steps which belong to the particular section. Please consider that activation/deactivation of a Processing Step is not the same as activation/deactivation of a Scenario Package. If you activate a Scenario Package, the Process Steps will be activated for all selected Scenario Steps. Here you activate/deactivate one particular step possibly for many Scenario Steps as these Process Steps are generic for all Scenario Steps of a particular type. Regarding the relationship between Scenario Package, Scenario Step and Process Step, please refer to chapter 1.1.5. [Debug on], [Debug off] Here you can switch on or off the production of detailed debug information during processing. During activation of a Scenario Package, the framework checks the configuration to decide if the debug switch is on or off. Please refer to reference guide 01, chapter 7. For production environment it should be switched off, except for a concrete trouble shooting. In a development environment it should be switched on.
For each process step there is one line in the list. The list is sorted by the logical address (SysId) of the system, defined in the System Landscape Directory. Each line is displaying the system identifier, the name of the processing step (IPO) and if the step is active or deactive, if the step is producing debug information and if the last transaction failed. For each process step you have the following actions:
- 42 -
[DBG], [TID] Please click this button to open the Flow Analysis screen for all processing steps of the particular processing time. The newest transactions are listed first. You will get listed all executions, available in the history of the Integration framework. Please notify that the detailed information will be available for a particular time only as there is a regular, automatic garbage collection. For details how to work with the Flow Analysis screen, please refer to chapter 2.1.2. Whereas the [DBG] list takes a while to open due to the fact that all debug information will be collected, the [TID] is a faster option without the possibility to run the graphical flow debugger. Activate This checkbox indicates the current status and allows you by just checking/un-checking to change the mode for this particular process step. Debug This checkbox indicates the current status and allows you by just checking/un-checking to change the mode for this particular process step. Exception This checkbox indicates if there was an exception in the last run of this processing step. The checkbox is always disabled. The exception indicator is overwritten with the next run of this processing step.
- 43 -
The internal queues of the Integration framework are identified by the queue name and stream name where a stream is a sub queue. The queue monitor allows you to check the current status in the internal queue. You also can open or delete the messages in a particular queue/stream. Please call Monitoring Queue Monitor
Due to the fast processing, you typically will not see a message waiting in the internal queue. The above example shows a processing of an incoming B1 event, the first processing step is completed. As two different Scenario Steps are subscribed to this incoming message, the inbound step created two messages (one for each Scenario Step) into the internal queue to trigger the follow up processing. You can see this intermediate step e.g when you deactivate the PRC step (chapter 2.2). First the queue monitor will list in the first column all existing queues which contain at least one message. By clicking on one particular queue, all available streams will get displayed in the second column. Beside the stream name, you see the number of messages in this stream. By clicking on a particular stream, all available messages will get displayed in the third column The buttons [Show] will display the message, [MsgFlowInq.] allows you to check which process has created this particular queue entry. With [Delete] you can delete one particular message from the stream. [Clear] allows you to delete a complete stream.
- 44 -
- 45 -
3. System Administration
3.1 System Information
The system information screen gives you information of your Integration framework version. Here you can find out which functionality is supported by the version you are running. Maintenance System Info
Version Number Here you can check the version number of the current running Integration framework. This is helpful information for SAP support in case of a problem in your environment. Version Timestamp Here you can check the timestamp of the version of the current running Integration framework. [Inbound] Clicking this button opens a separate window, listing all inbound channels, supported by your version of the Integration framework. The inbound
- 46 -
channels, marked as not available will be introduced successively with following patches/upgrades. [Processing] Clicking this button opens a separate window, listing all processing functionality, supported by your version of the Integration framework. There are two separate section for the administration user interface and for the runtime. Functionality, marked as not available will be introduced successively with following patches/upgrades. [Flow Atoms] Clicking this button opens a separate window, listing all flow atoms, supported by your version of the Integration framework. The flow atoms are one of the main differentiators to other integration solutions. These powerful functions are especially made for integrating business applications and are providing frequently used functionality in a very easy way, e.g. calling and SAP Business One system or retrieving data from a database. Functionality, marked as not available will be introduced successively with following patches/upgrades. Base on customer requirements SAP will add more of these atoms on demand. [Outbound] Clicking this button opens a separate window, listing all outbound channels, supported by your version of the Integration framework. The outbound channels, marked as not available will be introduced successively with following patches/upgrades.
- 47 -
Maintenance
Config MsgLog
Message Log With this checkbox you switch on or off the production of message logs during the processing. Daily Deletion With this checkbox you switch on or off the daily deletion (garbage collection) of the message log information. Please notify that daily deletion will get activated only if you have a correct configuration defined for daily deletion. Please click the [Config Daily Deletion] button to define the configuration. In case you switched on the Message Log, its strongly recommended to schedule the automatic daily deletion Log Level Here you specify the level of information to be generated by the message log. The following level are available Infoset Full message Full message incl. binary data
- 48 -
For a productive environment, its recommended to switch off the Message log or to switch it on with the lowest level (Infoset). In case you introduced new Scenario Steps, it could make sense to switch on the full Message Log (Full message) in the beginning phase. In case you are in design phase, you should switch on the message log with Full message level. [Delete Manually] You can click this button if you want to clean the message log manually without waiting for the daily scheduler.
Range Here you specify the range of message logs you want to delete. The default when you enter the screen is today. If the field is empty, all existing message logs are selected. You can also use a substring of the date, e.g. 1005 to select all message logs for may 2010 and it is possible to define end and start date by using the between both dates, e.g. 100501-100518. Number of existing Log Files This field displays the number of message logs available for the selected range. Last Deletion This field displays the timestamp of the last manual deletion. [Delete] Clicking this button will generate delete jobs to trigger the deletion of message logs in the background, corresponding to the selected range
- 49 -
[Config Daily Deletion] Please click this button to configure the daily deletion.
Deletion Time (hour) Here you specify the deletion time. Please click the corresponding button to open a drop-down list with the allowed values. The deletion will be performed at the full hour. Backup Buffer (days) Here you specify how many days you want to exclude from the deletion. Its the period (in days), for which the deletion will not be performed. Last Deletion This field displays the timestamp of the last automatic daily deletion. [Save] This button will store the configuration. In case the automatic deletion is switched on, the scheduler will be re-activated with the new setting.
- 50 -
You can access the maintenance screen via the administration console. Maintenance User Administration
[Admin User] Here you can add, modify, delete and de/activate user accounts for administrative tasks. [Runtime User] Here you can add, modify, delete de/activate user accounts for the integration processing runtime and the B1 event inbound channel.
- 51 -
[Session Control] Here you can get a list of all currently running sessions and the possibility to kick out a particular session. [Authentication Events] List to check the history of log-ins for all HTTP sessions.
When you click the button, the user admin screen opens and lists all currently specified users:
- 52 -
[Add User] Please click this button to add a new user. The following window will open:
User Here you type in the unique name of the user. Password, Password (repeated) Here you type in the password for the user. The password is rejected in case it has less than 6 characters. Language Here you specify the language for the user. Currently the Integration framework is English only, but prepared already for multi language. This setting will be used in a following version of the Integration framework. active Here you check if the user is active or not. This allows you to maintain even in advance the users for the system. [Submit!] Please click this button to save the new user into the user list .
[Toggle Activation] Please click this button to switch the status of the user between active and deactive.
- 53 -
[Change Password] Clicking this button opens a window that allows you to enter a new password for an existing user. Here you type in the password for the user. The password is rejected in case it has less than 6 characters.
- 54 -
The list is sorted by HTTP name-space, IPO-Step and User. User The user id under which the session is running client IP-address The IP address of the client IPO-Step Name of the Processing Step in case the session is initiated by an inbound call of a Scenario Step. For more details about the processing logic inside the Integration framework, please refer to chapter 2.2 session-handle Identifier of the session started Timestamp when the session started. duration so far Duration time of the session until now in seconds. session timeout The timeout setting for this session in seconds. The session will automatically expire when it is idle for this period of time. accesses Number of calls inside this session authentication mode Mode of the authentication for this session. Mode can be one of the following values: none basic userdef HTTP name-space The namespace of the http session. The namespace indicates the type of the incoming call. dummy Administration session. This is typically a session triggered from the administration console or a session triggered by a WebDAV client (windows explorer or xml editor). basic Incoming HTTP call. This is the incoming call from the Event Sender or any incoming call for a particular Scenario Step, to be triggered by HTTP.
- 55 -
soap Incoming SOAP call. This is any incoming call for a particular Scenario Step, triggered by web service.
[Kick-Out] If you click this button, you can kick out the session. The session handle will expire and no further calls be accepted.
A selection screen will open which allows you to specify details of your request. If you want to see the complete list, just click the [Submit!] button.
User Here you can select one particular user out of the list. For Admin Users you will find the maintained Admin Users in this list. For Runtime Users, the dropdown list will display the users of the Runtime Users List. Please notify that it depends on the authentication concept of the particular Scenario Step if the incoming HTTP calls are using this list, an own list or even an own validation process. For details please refer to chapter 6.3. In case you want to filter to a particular user not covered by the drop-down list, just type in the user name.
- 56 -
Client IP Here you can type in a concrete ip address to check if there are sessions triggered by a concrete machine. From timestamp, Until timestamp Here you can filter on a concrete time period in specifying the start and the end time for the selection. Kind of Events The authorization events will always end with a particular type. The following types are possible: LOGON (successful logon) LOGOFF (successful logoff) FAILURE (failed logon) TIMEOUT (logon which timed out) KICKOUT (logon which is kicked out by administration) DEACTIVATED (logon, deactivated after 5 failed logons)
- 57 -
New (SLD Create System) To add a new system to the SLD, click the Create System entry. On the right please choose the SysType and define a unique name. Afterwards click the [Create] button. After creation you are in edit mode.
Modify (SLD) To modify system parameters, just click on the particular entry in the tree and click the corresponding [Edit] button to open the edit mode. When you finished your input, please click the [Save] button to store the new configuration. Delete (SLD) To delete a system from the SLD, just click on the particular entry in the tree and click the corresponding [Delete] button. Test Connection (SLD) To test the connection to a system, just click on the particular entry in the tree and click the corresponding [Test connection] button of the active connector you want to test. A window opens with the original result of call interface. - 58 -
There are two connectivity options to interact with SAP Business One. The DI API and the direct database connection JDBC.
B1Server Here you type in the IP address of the SAP Business One server. Logical names can be used. The string you type in here needs to be the same string, that is used in the EventSender setup for this SAP B1 system (e.g. if you used the logical name in EventSender you need to type in here also the logical name. The comparison is case sensitive. If you are using the parameter associatedSrvIP in HTTP (chapter 4.4) or Web Service (chapter 4.5) to associate an incoming call to a particular B1 system, you also have to make sure that both parameters are the same.
- 59 -
licenseServer This field holds the information about the license service of SAP Business One. Its the IP address, followed by a colon and the port number where the license service is accessible, typically 30000. Please make sure that the service can be reached and a license is available. If you leave this field blank, the SAP Business One default license server setting is used. company The name/identifier of the company database of SAP Business One. dbType Specification of the database system, used for SAP Business One. Please select the entry out of the drop-down list. dbUser Login for the access to the company database via the database dbPassword Password for the database login for the user, defined in field dbUser. userName, password Login for the access to the company database via SAP Business One. You need to create a user exclusively for integration purposes. In B1 2007, this user is available with the installation of SAP B1. This user may not perform normal operations in the SAP Business One client. The SAP Business One integration platform filters the messages based on this specific user to avoid endless loops of messages. How to configure the B1 inbound filter, please refer to chapter 1.3. language Please select the language to be used for the B1 login from the drop-down list. If you leave this field blank, the SAP Business One default language setting is used. trust Please select if you have a trusted connection to SAP Business One. The value is true or false. The value determines whether to use Microsoft Windows trusted database logon instead of using dbUser and dbPassword. We recommend selecting false and maintaining the dbUser and dbPassword fields. jcoPath JCO is a functionality of the DA-API and used to interact between the Integration framework and DI-API. The DI-Proxy needs to have the information where the JCO functionality is located in the local file system of the B1 Server. In case of a standard installation, you typically find the JCO functionality in the file system directory C:\Program Files\SAP\SAP Business One Server\DI API\JCO\LIB. The default is the specification of the jcoPath on B1 side in the proxy configuration. In this case this parameter is empty.
- 60 -
diProxyhost The Integration framework provides the technical DI Adapter, consisting out of two parts, the DI Adapter Control part and the DI Adapter Proxy part. The DI Adapter is running locally on B1 Server side where as the Control part is running on the Integration Server side. Here you have to specify the IP address of the server where the DI Proxy is running. diProxyport Here you define the port where the DI Proxy is listening. By default this port is set to 2099. In case this port is occupied on the B1 Server, you can use any port you want. In this case please define the port number also in the configuration file for the DI Proxy. proxyHost In case you have to specify a proxy server of you network to be used to connect to the B1 Server, please enter the IP address here. Leave it blank if no proxy is used. proxyPort In case you have to specify a proxy server to be used to connect to the B1 Server, please enter the corresponding port number here. Leave it blank if no proxy is used.
driver The specification of the JDBC driver is provided by the database vendor. Example for SQL Server 2005 and SQL Server 2008 is the string com.microsoft.sqlserver.jdbc.SQLServerDriver. Example for SAP DB is the string com.sap.dbtech.jdbc.DriverSapDB. url The specification of the JDBC URL. Example for SQL Server 2005 on localhost, dbName=DatabaseName (jdbc:sqlserver://ipaddress:1433;integratedSecurity=false;databaseName=DB NAME;selectMethod=cursor) Example for SAPDB on localhost (jdbc:sqlserver://ipaddress:1433;databaseName=DatabaseName;SelectMetho d=Cur)
- 61 -
Please use the same database name which you defined in section DIAPI in the field company. Please use the same IP address which you defined in section DIAPI in the field B1Server. username Login to the database. Please make sure that the login has enough rights to do the necessary operations. Please type in the same username which you defined in section DIAPI in the field dbUser. password Corresponding password for the Login. Please type in the same password which you defined in section DIAPI in the field dbPassword.
For all SAP ERP systems there is one active RFCA connection to call function via RFC and one passive RFCP connection to receive incoming IDOCs. The Integration framework is an RFC server and in passive mode. To send data from an SAP ERP system you have to configure the ALE on SAP ERP side. In ALE you have to define the Integration framework server as a logical system. Via the RFCA adapter you can call any remote enabled function in SAP ERP, typically developed in ABAP. Please consider that you have to open it to allow remote call.
For the newer SAP ERP systems ECC, there are additional sections for the web service connections. For the configuration please refer to the chapter 4.5.
- 62 -
applicationServer R/3 application server client Identifier of the client (MANDAN field), you want to use in your R/3 System. user The user in the R/3 system for the Integration framework to login for data exchange. password The corresponding password for the user. Please consider that older R/3 systems typically support uppercase passwords only. Very often this is handled transparent as the R/3 user interfaces and the RFC connectors are doing an automatic transformation to uppercase. Please consider this in case you fail with the test connection. language Logon language systemNumber Internal number of the ERP system maxConnection Maximum allowed connections gatewayHost Gateway Host
- 63 -
gatewayServiceNumber Number of the gateway service. By default the number is compiled following the pattern sapgw<systemNumber>. senderPartner The Sender partner is the identifier under which the Integration framework is defined in your ERP system. This identifier is called Logical System. Prerequisite is that you have created a Logical System for the Integration framework. You can do this in your ERP system with the transaction /nSALE (Application link Enabling -> Sending and Receiver Systems -> Logical systems -> Define Logical systems). senderPort Sender port. Typically this is also the Logical System. recieverPartner The Receiver partner is the identifier under which the client (MANDAN) of the ERP system is defined in your ERP system. This identifier is called Logical System. Prerequisite is that you have created and assigned a Logical System for the client of the ERP system. You can create a Logical System in your ERP system with the transaction /nSALE (Application link Enabling -> Sending and Receiver Systems -> Logical systems -> Define Logical systems). You can assign the Logical System to the client of your ERP system in your ERP system with the transaction /nSALE (Application link Enabling -> Sending and Receiver Systems -> Logical systems -> Assign Client to Logical System). recieverPort Receiver port
- 64 -
applicationServer, client, user, password, language, systemNumber, maxConnection, gatewayHost, Gateway Host, gatewayServiceNumber Please refer to the description above programID The Program Identifier is the Program ID, specified in the RFC destination definition in the ERP system. Prerequisite is that you have created an RFC destination definition for the Integration framework. You can create such a definition in your ERP system with the transaction /nSM59. Please choose TCP/IP protocol. unicode Please indicate if your R/3 client supports/does not support Unicode.
The Integration framework is interacting with the file system via a separate inbound and outbound directory. These directories must exist and the user under which the Integration framework is running needs full access rights.
filePattern To specify the inbound file pattern you define the directory (with full path, UNC names are supported) and the file specification. Please ensure that you define always directories that are existing and accessible with the needed rights in the file system. You can use the * symbol, which is following the standard DOS conventions to address multiple files. Encoding Character encoding is needed to apply the technical representation of the characters according to the country or system specific needs. The following entries are 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 - 65 -
8859-13, ISO 8859-14, ISO 8859-15, ISO 8859-16, US-ASCII, EBCDIC, ShiftJIS, 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. ISO-8859-1 is the default. Delimiter This value is mandatory for DSV (delimiter separated value) files only. Here you specify the delimiter that separates the particular fields. Typically a , or a ; sign. WrapChar Here you specify the field wrappers. The field wrapper is optional and only used to avoid that a field delimiter character inside a value will be misinterpreted as a field delimiter. Payload Type Here you can specify the inbound format(s) to be supported in the file inbound of the selected system. Please use the drop down list to select the appropriate format: automatic detection: All formats are supported simultaneously. Please make sure that you have specified the filePattern .*. The payload type will be automatically detected by the file extension. (xml->XML, csv->DSV, txt->OFFSET). xml file: always interpreted as an xml documents, independent on the file extension. dsv file: always interpreted as a dsv file, independent on the file extension. txt file: always interpreted as a fix length file, independent on the file extension. A fix-length file has offset definition per field (all lines have the same structure). Mandatory you have to specify the field transformation in the XML document in the base directory of the Scenario Step and have to specify the name of this control document in the inbound specification (please refer to reference guide 02, chapter 3.1.3). regex file: always interpreted as a text file to be interpreted by regular expressions, independent on the file extension. Mandatory you have to specify the field transformation in the XML document in the base directory of the Scenario Step and have to specify the name of this control document in the inbound specification (please refer to reference guide 02, chapter 3.1.3).
- 66 -
filePattern To specify the outbound file pattern you define the directory (with full path, UNC names are supported) and the file specification. Please ensure that you define always directories that are existing and accessible with the needed rights in the file system. You can use the following special characters, resp. variables: ? For the outbound file pattern, you can use the ? to introduce a numbering in this directory. This symbol leads B1iSN to build file generations by counting up a number. The example data????.xml will create an outbound file with the name data0000.xml in case the directory is empty. In case a file, following this naming convention, is existing in the outbound directory, the next generated file name will be data<last number>+1.xml. A placeholder for a value which you can define inside the processing of the Scenario Step. In case you want to set this value, please add the attribute b1im_filename directly in the outbound payload.
<xsl:template name="transform"> <xsl:attribute name="b1im_filename">myName</xsl:attribute> ... </xsl:template>
[vbiu]
[TS]
This variable will be replaced by the current timestamp to give you another possibility to defined unique file names.
[yyyy] This variable will be replaced by the current year (4 digits [yy] [mm] [dd] This variable will be replaced by the current year (2 digits) This variable will be replaced by the current month (2 digits) This variable will be replaced by the current day (2 digits)
[hour] This variable will be replaced by the current hour (2 digits) [min] [sec] This variable will be replaced by the current minute (2 digits) This variable will be replaced by the current second (2 digits)
You can also combine the usage of such variables. For example file[TS]??.[hour][min].txt
- 67 -
H.AnySystem supports supports the POX standard in supporting HTTP calls with any kind of incoming and outgoing XML message.
destProtocol Protocol used for communication, typically http or https. destHost Specification of the host system that gets called. Please type in either the IPaddress or the symbolic name for the receiver system. destPort Port/Service to be called on the destination host. An empty value defaults to the protocol-specific default. destPath Destination resource that consists of the remaining destination path and the document name; it may not contain query-parameters / fragment identifiers.
- 68 -
query Query strings, separated by semicolon proxyHost In case you are using a proxy server to connect to the Integration framework server, please enter the IP address here. Leave blank if no proxy used. proxyPort In case you have to specify a proxy server to be used to connect to the Integration framework server, please enter the corresponding port number here. Leave blank if no proxy used. method HTTP method to use; POST and GET are supported. If you want to set up a standard scenario to handover data via HTTP, please choose POST as the method. authentication Selected authentication method: basic if you want to activate the authentication or empty in case there is no login necessary for the system. user User name for authentication purposes password Password name for authentication purposes user2query If the user is entered as a query parameter, this property holds the parameter name. password2query If the password is entered as a query parameter, this property holds the parameter name.
associatedSrvIP This parameter is used in case an incoming HTTP call is associated to a particular SAP Business One system. In this case you can specify the relevant association details in this parameter which depends on the Scenario Package you want to set up with this SLD entry. For the Scenario Package sap.B1Mobile, the parameter is b1Server/company, for the Scenario Package sap.Xcelsius, the parameter is the b1server. Please consider that the strings have to be the same as in the SLD entry for SAP B1 for this parameter.
- 69 -
In the Connectivity List youll find the following four sections: WSAN (active connectivity) WSAS (active connectivity) WSAO (passive connectivity) WSAR (passive connectivity) To use the web service type One-Way (asynchronous communication) please specify the parameter for the WSAN section. To use the web service type Request-Response (synchronous communication) please specify the parameter for the WSAS section. WSAS and WSAN sections have the same parameters. Please use the web service type WSAR for incoming synchronous web service calls. The passive web service type WSAO for incoming asynchronous calls does not need any parameter.
destProtocol Protocol used for communication, typically http or https. destHost Specification of the host system that is called. Please type in either the IPaddress or the symbolic name for the receiver system.
- 70 -
destPort Port/Service to be called on the destination host. An empty value defaults to the protocol-specific default. destPath Destination resource that consists of the remaining destination path and the document name; it may not contain query-parameters / fragment identifiers. query Query strings, separated by semicolon proxyHost In case you have to specify a proxy server to be used to connect to the Integration framework server, please enter the IP address here. Leave blank if no proxy used. proxyPort In case you have to specify a proxy server to be used to connect to the Integration framework server, please enter the corresponding port number here. Leave blank if no proxy used. authentication Selected authentication method: basic if you want to activate the authentication or empty in case there is no login necessary for the system. sslTruststorePath Specify the trustStore path when using https protocol. We recommend you specify either a UNC Path (Universal Naming Convention) on Microsoft Windows or an NFS Path (Network File System) on Unix. sslTruststorePassword Password for accessing trustStore.
associatedSrvIP This parameter is used in case an incoming HTTP call is associated to a particular SAP Business One system. In this case you can specify the relevant association details in this parameter which depends on the Scenario Package you want to set up with this SLD entry. For the Scenario Package sap.B1Mobile, the parameter is b1Server/company, for the Scenario Package sap.Xcelsius, the parameter is the b1server. Please consider that the strings have to be the same as in the SLD entry for SAP B1 for this parameter.
- 71 -
The Integration framework enables you to interact with any kind of database systems that is exposed via JDBC.
driver The specification of the JDBC driver is provided by the database vendor. Example for SQL Server 2005 and SQL Server 2008 is the string com.microsoft.sqlserver.jdbc.SQLServerDriver. Example for SAP DB is the string com.sap.dbtech.jdbc.DriverSapDB. url The specification of the JDBC URL. Example for SQL Server 2005 on localhost, dbName=DatabaseName (jdbc:sqlserver://ipaddress:1433;integratedSecurity=false;databaseName=DB NAME;selectMethod=cursor) Example for SAPDB on localhost (jdbc:sqlserver://ipaddress:1433;databaseName=DatabaseName;SelectMetho d=Cur) username Login to the database. Please make sure that the login has enough rights to do the necessary operations. Please type in the same username which you defined in section DIAPI in the field dbUser. password Corresponding password for the Login. Please type in the same password which you defined in section DIAPI in the field dbPassword.
- 72 -
- 73 -
5. Performance
There are some general aspects that are influencing the performance of the Integration framework.
5.1 Memory
The Integration framework for SAP Business One is a pure XML-centric environment. The most important aspect for smooth xml processing is the available system memory. The Integration framework is available for 32 bit and for 64 bit operating systems.
32bit Please consider that in a 32 bit windows operation system, the maximum memory that the operating system can assign to the Integration framework is 1 GB. Its important to assign 1 GB memory to the Integration framework. In a typical small setup where the Integration framework is running on an SAP B1 server, you need to have at least 4 GB where you assign 2 GB to the database system, 1 GB to the Integration framework and 1 GB will be left for the operating system. 64 bit In a 64 bit environment you can assign as much memory you need to the Integration framework. This should be considered in case you reached the limits of the 32 bit environment.
- 74 -
Its strongly recommended to go for an optimal configuration in switching on the eventing for connected company databases only and for subscribed business objects only. In case you are dealing with an older version of SAP Business One, you will create events for all business objects for a particular company database. In this case, please use the filter inside the EventSender to send only the subscribed business objects only to avoid unnecessary load on the Integration framework.
- 75 -
6. Security
The Integration framework for SAP Business One serves as a message hub between several clients. Each connection between a particular client and the Integration framework needs to be secure. The following security checkpoints can help you strengthen the security aspects of your Integration framework installation. Please also refer to the Administrator's Guide for the Integration Component which describes in general the concepts how to work with the Integration framework, covering also in general aspects of secure usage like HTTPS, Firewall, certificates etc.
To avoid manipulation of the basic functionality (e.g. replacing the database driver class with a spy driver class), its strongly recommended to ensure that no one else than the system administrator has write access to this base directory of the Integration framework.
- 76 -
The Integration framework runs as an NT background process or a UNIX daemon under a defined user. Please make sure that the granted right for the user are limited to the needs. We strongly recommend that you do not run Tomcat with users that have administrative rights, for example, root on Linux, or Administrator on the Microsoft Windows system. Only the technical base functionality is stored in the base directory. Similar to SAP R/3 technology, all meta data and all programming logic is stored in an own storage, the BizStore. BizStore is implemented in a Relational Database Management System (RDBMS). Here the Integration framework administers all access information for all connected systems, all integration scenarios and all settings. You can define a user and password, and ensure that only this user may access the Integration framework tables, especially if the RDBMS is shared with others. The credentials to access this single point of entry for all critical information are stored in the B1i configuration file. This configuration file is stored in the base directory. The name is xcellerator.cfg To avoid manipulation here, its strongly recommended to ensure that no one else than the system administrator has read and write access to this configuration file. Therefore you need to protect the configuration file with the OS file authorization mechanism. Procedure 1. Stop SAP Business One Integration Service: 2. Change the Authorization setting of the base directory In Microsoft Windows Explorer, locate the base directory Right-click the folder and choose Properties In the Security tab, remove all unnecessary groups or user names, except Administrators and SYSTEM. In the Security tab, choose Advanced Deselect the checkbox Inherit from parent the permission entries that apply to child objects. Include these with entries explicitly defined here. In the Security window, choose Copy Select all unnecessary groups or user names, except Administrators and SYSTEM, and choose Remove. Choose OK 3. Re-start the SAP Business One Integration Service
- 77 -
In the xcellerator.cfg, you define the login to the database where the BizStore is located. If you are using integrated authentication for MSSQL, ensure that the defined user is a trusted user for MSSQL. If you want to change the password in the xcellerator.cfg, you have to type in the encrypted password. You can use a tool, available by the Control Center to get the encrypted string for any password you type in. Control Center Configuration Encrypt Password
Its strongly recommended to use the database functionality to limit the access rights to the needs. In case you want to limit the access rights to the B1i tables only, the following tables are of relevance for the Integration framework: BZSTDOC BZSTIDXH BZSTIDXP DBQITEMS DBQSTREAMS XCLTRINQ XCLTRLOG XCLTRPOS
For security reasons, we strongly recommend that you create the tables with the user you have defined, rather than the one that owns the database schema for the SAP Business One application.
- 78 -
For details how to create, update, delete or de/activate a user account and how to control sessions and incoming authentication events, please refer to chapter 3.4. Session handling Automatically the Integration framework is setting up a session for an incoming call. The timeout for this session is following the parameter in the xcelerator.cfg. xcl.http.sessionTimeout=100 This parameter indicates the timeout for HTTP-prone sessions in minutes. If not specified, the value defaults to 10. The value must be greater than 0, otherwise, it internally will be set to 1. Please consider that each open window is a separate session. So e.g. if you opened 10 windows successively it can happen that you will have expired sessions quite often which will disturb your work. In case of a session timeout, automatically the browser pops up the login screen. Remote Access By installation default, administrative web access is limited to the local machine only. After installation it is possible to manually allow access by remote machines, by changing the particular setting in the configuration file xcellerator.cfg. xcl.http.localOnly=false
- 79 -
There are four options for authentication No authentication Authentication against the Runtime User List Authentication against a special User List Authentication via an own processing step We strongly recommend not to use No authentication. The authentication against the Runtime User List will authenticate against the user, maintained in the User Administration (chapter 3.4 Runtime User). The authentication against a special User List will run against a special xml document to be provided in the BizStore. Please refer to reference guide 02, chapter 4. The authentication via an own processing step will run an individual process, provided by the owner of the particular Scenario Package. This process needs to be provided in the BizStore. Please refer to reference guide 02, chapter 4.
Session handling The Integration framework supports session handling for incoming HTTP calls. In case this is switched on, the Integration framework is setting up a session for an incoming call. Authentication will take place in case an incoming call hands over an empty or invalid session id. After successful authentication, a valid session id will be handed back to the caller to be used for follow-up calls. If a session handling is activated depends on the authentication setting in the Scenario Package and the configuration of the parameter Session Timout in the authorization concept definition. Please also refer to reference guide 02, chapter 4.
- 80 -
Automatically the Integration framework is setting up a session for an incoming call. The timeout for this session is following the parameter in the xcelerator.cfg. Secure incoming calls The Integration framework supports both protocols HTTP and HTTPS. If the Scenario Package is linked to a user defined authentication, you can specify in the authentication definition to enforce an HTTPS protocol. This causes the Integration framework to allow HTTPS inbound calls only. Enforce Secure Login Please refer also to the Security Administrator's Guide for the Integration Component which gives you a good overview for security strategies. If you open your environment to the outside, SAP strongly recommends to contact experts to set up the environment in an optimal secure way.
After granting one MS Windows user, you have to set SAP Business One Service to run with the specified Microsoft Windows user. Choose Control Panel Administrative Tools Services, and doubleclick SAP Business One Service In the Log On tab, choose This account. You can authorize the trust connection to the user you specified in step 1 On the General tab, restart SAP Business One Service by first choosing Stop, and then Start
- 82 -
- 83 -
- 84 -