Author |
Message
|
dprogwmb |
Posted: Tue Jul 19, 2011 3:05 pm Post subject: Generic ServiceAdapters for SAP Input y SAP Request nodes!!! |
|
|
Voyager
Joined: 19 Jul 2011 Posts: 96
|
Hi all!!!
Im using 7.0.2 version of Websphere Message broker.
In my work I was asked to make a service solution for accessing SAP Adapters (inadapter and outadapter) parameter based ... Actually there are a lot of flows accessing different adapters of SAP, and the idea is to create an unique subflow that makes that access helping the adapter maintenance. So if there's a change of the destination SAP system (eg change in the ip address) , that changes are made in 1 only place...
For system 1 SAP:
For input (SAP Input node) I use: ALE (IDOC)
For Request (SAP Request node) I use: BAPI
For system 2 SAP:
For input (SAP Input node) I use: ALE (IDOC)
For Request (SAP Request node) I use: ALE (IDOC)
I've seen a pattern for Input (that comes with toolkit) that uses IDOC Generic format message... but for the Requests, I'm only thinking in using 1 only adapter with all the RFC's used and for the configuration of the conection to sap use an Configurable service for that adapter.
Any ideas or best practices?
Regards!!!! |
|
Back to top |
|
 |
joebuckeye |
Posted: Wed Jul 20, 2011 6:23 am Post subject: Re: Generic ServiceAdapters for SAP Input y SAP Request node |
|
|
 Partisan
Joined: 24 Aug 2007 Posts: 365 Location: Columbus, OH
|
dprogwmb wrote: |
Actually there are a lot of flows accessing different adapters of SAP, and the idea is to create an unique subflow that makes that access helping the adapter maintenance. So if there's a change of the destination SAP system (eg change in the ip address) , that changes are made in 1 only place... |
The change may only be in one place (which is good) but you will still need to rebuild all the flows using the changed subflow and then deploy them. |
|
Back to top |
|
 |
smdavies99 |
Posted: Wed Jul 20, 2011 8:39 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
Quote: |
So if there's a change of the destination SAP system (eg change in the ip address) , that changes are made in 1 only place...
|
Look at configurable services for SAP. This is already covered.
We build one adapter that is hard configured for DEV. Then in Test, UAT & Prod the configurable service overrides the configured properties. we also set the username/password with mqsisetdbparms.
simples said the meerkat. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
dprogwmb |
Posted: Wed Jul 20, 2011 12:52 pm Post subject: |
|
|
Voyager
Joined: 19 Jul 2011 Posts: 96
|
mmm... Are my ideas correct?
1)I'm planning to use the IDOC Pattern from the toolkit for the SAP Input node, is it ok? (it already has the configurable service) - only posible problem is the MQInput node with DataObject Domain... (I have never used it in MQ) ... has any of you use it?
2)For the Sap Request node: I'm planning to use a Generic sub-flow in which I invoque the Sap Request and I pass a parameter to that sub flow with the method name I whish to invoque from the outside message flow, is it good?
Any comments?
Thanksss!!!! |
|
Back to top |
|
 |
smdavies99 |
Posted: Wed Jul 20, 2011 11:22 pm Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
Part of the configuration of your SAP Adapter is the discovery ofthe SAP Document Structure.
I've never used IDOCs only BAPI's but it seems to me that because each interface is different you are goingto have to have separate adapters.
This is how you get your message set that describes the data format you need to pass to SAP. SAP is very VERY pernikerty in its data. If you pass it the wrong data it really gets into a bit of a tizzy.
I think you might be wasting your time. If I am wrong I am sure some more experienced colleagues will be along to correct me. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
dprogwmb |
Posted: Thu Jul 21, 2011 4:13 am Post subject: |
|
|
Voyager
Joined: 19 Jul 2011 Posts: 96
|
Yes, I'm planning to use different adapters (one for BAPi -request- and one for IDOC-input)... but I'm not sure if any of you have used the Pattern for Idoc -for the sap input-, for the toolkit... and I wish to know if that pattern can be usefull for me? -using after that MQInput for the dataobject-
And for the outadapter (BAPI) I wish to know if my possible solution seems to be good - using a generic subflow for the request, only passing the methodname as parameter-? (I've a planning very tight for my job... ho ho ho).
I hope you can help me!!!
Thanks to everybody!!! |
|
Back to top |
|
 |
whydieanut |
Posted: Thu Sep 29, 2011 1:28 am Post subject: |
|
|
 Disciple
Joined: 02 Apr 2010 Posts: 186
|
Hi,
I have used the provided pattern with the Generic ALE Passthrough Adapter.
I have also tried using the DataObject Parser to parse the BLOB that the flow in the pattern puts into the specific queue. It works as expected.
As to if this is the best way to do it, that I am not sure of.
I have tried creating multiple adapters each only dealing with a single IDoc type, but then yoou'd need separate Program Ids / RFC Destinations on SAP for each Adapter. I have tried using the same Program Id with multiple Adapters, but then the IDocs were picked up randomly by the adapters thus failing to be processed.
The other option is to use a single Adapter in normal ALE mode and specify ALL possible Idocs that you might need. But then you have the problem that each time a new IDoc needs to be processed, you'd have to recreate/update the Adapter. |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Sep 29, 2011 1:50 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Use a generic ALE adapter that will allow you to parse the EDI_DC40 and the EDI_DD40. Thus each IDOC is built with 1 DC40 and multiples of DD40 (unbound). This will be enough to enable you to route accordingly to the IDOC name and type etc... (info on the DC40).
Now if you have a convention of the queue name being like the IDOC name you can add an IDOC without changing your adapter config.
You will however need to prepare your environment and add an extra flow to process the new type.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
whydieanut |
Posted: Thu Sep 29, 2011 2:29 am Post subject: |
|
|
 Disciple
Joined: 02 Apr 2010 Posts: 186
|
Can I say that the ALE Passthrough Adapter is a good enough solution if you expect newer IDocs?
Also, if its known that there will be no more IDoc type additions later on, what is a better approach in terms of performance, maintainability?
Normal ALE Adapter configured for all IDocs that will be required OR ALE Passthrough Adapter? |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Sep 29, 2011 8:12 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
whydieanut wrote: |
Can I say that the ALE Passthrough Adapter is a good enough solution if you expect newer IDocs?
Also, if its known that there will be no more IDoc type additions later on, what is a better approach in terms of performance, maintainability?
Normal ALE Adapter configured for all IDocs that will be required OR ALE Passthrough Adapter? |
If you are going for speed and throughput you might want to use generic IDOC. You will then have to process them in a different flow.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
whydieanut |
Posted: Fri Sep 30, 2011 2:47 am Post subject: |
|
|
 Disciple
Joined: 02 Apr 2010 Posts: 186
|
Thanks.
Now to figure out how to use the ALE Passthrough Adapter for OutBound!
 |
|
Back to top |
|
 |
whydieanut |
Posted: Mon Oct 03, 2011 1:45 am Post subject: |
|
|
 Disciple
Joined: 02 Apr 2010 Posts: 186
|
Hi, I am facing a problem similar to the one mentioned in the below thread:
http://www.mqseries.net/phpBB2/viewtopic.php?t=53828&view=next&sid=b0b5d85ad872841833aab5e2087387ee
I have 2 Message Sets created, one with the SAP field DESCRIPTIONS (default) and another with the SAP field NAMES.
With a normal ALE Inbound Adapter, the MSet with the SAP field Names works fine.
I also tried using the SAP Passthrough ALE Inbound Adapter (from the sample pattern). In addition I created another flow to read specific IDocs from the Queues meant for each type of IDoc.
This is successful only when I use the MSet with the SAP field Descriptions in the MQInput node of the second flow.
It fails when I use the other MSet with the SAP field Names, with the exact same error message from the above thread.
I plan to use the SAP field Names in my flows as they are easier to deal with.
Has anyone tried using the SAP field Names in the Message Set for the specific IDoc flows when using the Passthrough Adapter? |
|
Back to top |
|
 |
whydieanut |
Posted: Tue Oct 04, 2011 12:55 am Post subject: |
|
|
 Disciple
Joined: 02 Apr 2010 Posts: 186
|
Update:
I created yet another Message Set, but this time, I set the IDoc Control Record field names to SAP field Descriptions (the default - check box unchecked)
And the Set the Data Record to use SAP field Names.
This time, the Message Set worked and I got data like below, where the Control Record had SAP field Description text and Data Record had SAP field Name text:
Code: |
<NS1:SapDebmas07 xmlns:NS1="http://www.ibm.com/xmlns/prod/websphere/j2ca/sap/sapdebmas07">
<SapDebmas07IDocBO>
<SapIDocControlRecord>
<NameOfTableStructure>EDI_DC40</NameOfTableStructure>
<Client>100</Client>
<IdocNumber>00000000000000001</IdocNumber>
<SapReleaseForIdoc>700</SapReleaseForIdoc>
<StatusOfIdoc>30</StatusOfIdoc>
...
...
...
<ReferenceToMessage></ReferenceToMessage>
<EdiArchiveKey></EdiArchiveKey>
<EdiAleSerializationField>123123123123123</EdiAleSerializationField>
</SapIDocControlRecord>
<SapDebmas07DataRecord>
<SapDebmas07E2kna1m005>
<MSGFN>000</MSGFN>
<KUNNR>00000000</KUNNR>
<ANRED></ANRED>
<AUFSD></AUFSD>
...
...
...
<NODEL></NODEL>
<TLFNS></TLFNS>
<CESSION_KZ></CESSION_KZ>
<GMVKZD></GMVKZD>
<SapDebmas07E2knbwm000>
<MSGFN>000</MSGFN>
<WITHT>AA</WITHT>
<WT_WITHCD>AB</WT_WITHCD>
<WT_AGENT>A</WT_AGENT>
<WT_AGTDF>1111111</WT_AGTDF>
<WT_AGTDT>2222222</WT_AGTDT>
<WT_WTSTCD></WT_WTSTCD>
</SapDebmas07E2knbwm000>
</SapDebmas07E2knb1m006>
</SapDebmas07E2kna1m005>
</SapDebmas07DataRecord>
</SapDebmas07IDocBO>
</NS1:SapDebmas07>
|
|
|
Back to top |
|
 |
DGoo |
Posted: Sun Oct 09, 2011 10:08 am Post subject: Hi |
|
|
Newbie
Joined: 09 Oct 2011 Posts: 6
|
I am trying the Passthroug IDOC. I got the Message to the Queue based on the IDOC type. I need help on how you parsed the CWF format to XML and which Message set you have used.
The Message Set created by the Adapter connection by connecting to SAP or you have created the Message set differently. |
|
Back to top |
|
 |
whydieanut |
Posted: Sun Oct 09, 2011 10:01 pm Post subject: |
|
|
 Disciple
Joined: 02 Apr 2010 Posts: 186
|
The message set used in the second flow to parse the specific IDOCs was created using the Adapter Connection wizard.
Just remember to leave the filed name option to default (use SAP Field Descriptions in stead of Field Names).
Field Names don't seem to work for the Control Record. Read above post. |
|
Back to top |
|
 |
|