For some standard IDOC, Sometimes, SAP team would hesitate to release all the segments due to maintenance overheads,
On the BizTalk side, To enable us to work with these Idoc’s we need to follow the below steps:
In the importing of the schema
Change the properties: GenerateFlatFileCompatible, ReceiveIdocFormat and FlatFileSegmentIndicator
Add the extension Flat File Extension to the schema generated
In the configuration of the receive port
Change the handling of the message body to a specific XPath
Use a pipeline with a Disassemble stage configured to use a Flat File Disassembler
Change the ReceiveIdocFormat property
Beyond the configuration steps above, we need to create one pipeline to each Idoc or at least add one more component in the Disassemble stage of the receiving pipeline for each Idoc.
I also looked if this schema generated in this specific way, is going to work even in case the SAP team does not release all the segments..
These are the configurations I did on the Receive Location:, Note ReceiveIdocFormat should be “String” not Typed (There is a mistake in the screenshot)
My initial vmdk file was 40GB, then I created 4 snapshots which added the file -0001.vmdk–>0002.vmdk—>0003.vmdk and finally 0004.vmdk. In my settings for VM, the hard disk was pointing to 0004.vmdk which had grown to the size of 50gb now.
That’s right, my original VM was about 40GB in total size and now with snapshots, it was taking almost 120GB.
The easiest workaround I found was to
- BACK UP all my inside to the VM to as NAS drive.
- Stop the VM
- Edit the .vmx file in notepad and change the configuration to scsi0:0.fileName = “original.vmdk”
- Start the VM again
It started as it was in the fresh state before any of those snapshots were created.
The server encountered a critical failure while trying to access the list of Views. The Business Management Web Service requires Administrator’s attention.
Use the navigation bar on the left to access Business Activity Monitoring views.
If the problem persists, contact your System Administrator.
Reconfigure BAM using BizTalk configuration wizard, If the reconfiguration does not work then you may have to delete the app pool in IIS and the BAM website and try reconfiguration again.
To leverage the exception handling provided by the ESB toolkit, Below are the steps
Add the exception block to your Orchestration
Add the code as in the snapshot inside the exception block
When the exception occurs, this block would publish the faultmsg to message box
By default, All fault messages are picked up by the send port “ALL.Exceptions” which populates the ESBExceptionDb. This can be viewed in ESB Management Portal
If you do not want this behavior, then you would have to subscribe the fault messages using “Application” or similar property and handle it in either sharepoint or any other custom mechanism.
Recently in one of my training session, we encountered the following error, apparently it turns out to occur during the accidental double deployment of the policies for of an assembly.
Additionally, the environment which was on windows server 2012 did not seem to run the BRE utility, though it gave the success status message in the wizard, So we had to manually browse to the folder and all the appropriate vocabulary and policies.
Folder to find policies :- C:\Program Files (x86)\Microsoft BizTalk Accelerator for SWIFT 2013 Message Pack\SWIFT Messages\A4SWIFT-SRG2013\Base Policies
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Microsoft.Solutions.FinancialServices.SWIFT.Utilities.BreDeployment.DeploymentDriver.GetMessageTypesFromAssemblies(ObjectCollection objCollection)
at Microsoft.Solutions.FinancialServices.SWIFT.Utilities.BreDeployment.MainForm.btnDeploy_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
- Elevate the privileges to SAP user account the highest possible permissions temporarily.
- Make sure your IP address is in the SAP acceptable access range.
- Install network monitor tool like wireshark from wireshark.org to see if any interesting traffic is
- flowing between the BizTalk server and SAP server.
- While configuring to receive IDOC, SAP Basis team should have the visibility whether the
- connection is success/not.
- Make sure the SAP connection is configured as Unicode
Click here for the detailed document.
The document consists some of the hands on errors encountered while connecting with SAP and the procedure to resolve it. a sample of one such error is
Error in Wireshark
*ERR*.1.registration of tp BIZTALK from host WQDESB12 not allowed.720.SAPGateway.
720.2.gwxxrd.c.3641..Tue Nov 12 15:08:07 2013….3972841.SAP-Gateway on host
HYPLABSSECC01.HYPLABS.iadb.org / sapgw00…..*ERR*
Error in Eventlog
The adapter “WCF-Custom” raised an error message. Details “Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_FAILURE.
AdapterErrorMessage=An exception has occurred on the listener while executing RfcWaitForRequest..
at Microsoft.ServiceModel.Channels.Common.Channels.AdapterReplyChannel.EndTryReceiveRequest(IAsyncResult result, RequestContext&
eceiveRequest(IAsyncResult result, RequestContext& context)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result, RequestContext& requestContext)”.
As a BizTalk Architect, you would always come across a situation, where you need to convince the client’s DBA team about “BizTalk server database architecture and its nature in use of in-built jobs”.
Traditionally DBAs’ presume certain roles and responsibilities on any product (which has “database in the backend”) acquired by the company, while it is very good to do so. There are products like BizTalk server that gets shipped with the pre-scripted SQL jobs, which if configured properly, would save administration/DBA team from lots of fuss in terms of maintenance and optimization.
Before diving into, where DBA’s would need to get involved in-terms of BizTalk administration, let me explain, How BizTalk is different from other traditional applications
||Other Applications( with database backend)
|Has Multiple Databases
||Yes, Typically around 5, but may depend on BizTalk Configuration
||Yes( Depends on application)
|DB Tuning Required?
||No (if configured correctly)
||Yes, Depends on the transactions
||Transactional data in the Msgbox can be viewed more like a cache.Once the message completes Workflow, data has no significance
||Transactional data may grow and may have to be retained for long term( Depends on the company policy)
||Not needed, If the jobs are configured properly, the data is backed up correctly and the transactional database( MsgBox) is maintained to the minimum
||Yes, as the table size increases, appropriate DB tuning needs to be applied.
||BizTalk Jobs, take care of it. These jobs do multiple things along with backing up the database.
||Usually achieved through custom / SQL server backing up tools.
|Can the backup be achieved without BizTalk Jobs?
||Yes, But not worth the risk. These jobs are optimized to backup necessary DB and do other things.
||DBA’s have full control; they can adapt the best for the solution.
The differences being depicted in the table above, Let see, where the DBAs needs to get involved in terms of BizTalk administration.
- Make sure that all the Jobs configured and enabled and running properly.
- Do not forget to enable the jobs after any sort of maintenance.
- Make sure sufficient database storage is available for the backups.
- Maintain the overall health of the SQL server (if standalone) or SQL cluster (if clustered).
In conclusion, Though BizTalk uses SQL server backend, it is deemed to see the entire as a product setup and avoid digging deep and modifying the pre-scripted BizTalk jobs to include custom solutions.