Re-send incoming IDOC
Hi,
we created own IDOC type and input function module to create Sales orders from interface data: Incoming file data are converted to IDOCS, IDOC_INBOUND_SINGLE saves IDOCS.
Is there a way to re-route IDOCs to outbound?
The background is that we have one system to receive interface data. They have to be converted to 'order' idocs. But the IDOCS have to be processed in different systems. Will an IDOC saved with FM IDOC_INBOUND_SINGLE be an outbound one if we fill the control structure pi_idoc_control_rec_40 accordingly with destination system?
Thanks for any hints!
C.
I had an other similar thread answering the question
Similar Messages
-
Sending reduced IDOC from XI to R/3 with nodata markers
Hi !
I need to update a VERY FEW Vendor fields data in R/3 from XI (FILE-XI-IDOC). I'm using the standard IDOC type CREMAS04 (I need to update fields of the E1LFBWM segment...withholding tax fields).
The problem is, that if I disable the not needed IDOC fields in the XI message mapping, when the IDOC reaches R/3, it blanks all the fields that were empty as result of the mapping...I verified it using XI and using the IDOC test tool (we19). For example, if the vendor had data in fields such as "salutation", "phone number", etc. after the IDOC processing, those fields change to BLANK.
One solution is to send the NODATA marker ("/") in those not needed fields, and that works!!!!...<b>BUT</b>, there are hundreds of IDOC fields.
I made a reduced IDOC type, based on CREMAS, enabling only the segments and fields needed, but tnx-WE19 and XI keep sending blank data in the not needed fields instead of the NODATA marker.
How could I send by default, the NODATA marker ("/") to all the fields NOT mapped or disabled, without having to map each field manually ?!?!?
Should XI send those fields as "/", or the R/3 should detect that the incoming IDOC is a reduced IDOC type, and complete all the not existing fields with NODATA ??
The goal is to update some data, and not overwrite with blanks, those fields that should remain untouched.
Thanks !!
Matias.Matias
Is ur intention /equirement to send the NODATA for the rest of the IDOC elements or just send the reduced IDOC for the required sender elements..
if it is only for sender file elements, as sravya said Note 709400 describes
The integration repository provides a new function: "export reduced XSD" to reduce the XML schema of an IDoc.
To use this function in the mapping tool, proceed as follows:
1) Open the relevant IDoc in the object editor of the XI Repository.
2) In the menu "Tools", select the menu option "Export reduced XSD".
3) Assign a file name in the subsequent dialog box and save the data on the hard disk of your local PC.
4) Use this exported file in the message mapping instead of the IDoc by using the function "Import XML or XSD" in the mapping tool to select the source or target message. So you must use this function to import the reduced XML schema stored under
3) of the IDoc in question, and use this XML schema instead of the complete IDoc.
Note: The XML schema generated using the function "export reduced XSD" does not contain the full information in the repository on the IDoc and should only be used for the mapping.
option2: if you want to send the NO DATA, you got to develop UDF in Java or XSLT..
Here is a sample Java code:
obj = inputModuleData.getPrincipalData();
msg = (Message)obj;
XMLPayload xmlpayload = msg.getDocument();
DocumentBuilderFactory factory;
factory =DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// parse the XML Payload
Document document = builder.parse((InputStream)
xmlpayload.getInputStream());
var x=document.getElementsByTagName("<rootnode>");
for(i=0;i<x.length;i++)
//the attlist variable will hold a NamedNodeMap
var attlist=x.item(i).attributes;
if (attllist.getvalue.equals("") { //pseudo
attlist.setvalue("/"); //pseudo
document.write(att.value + "<br />");
Good luck
Thanks-Gopal
Message was edited by:
gopal srinivasan -
Error to send a IDOC from ECC to SUS
Hi,
I am trying to connect to SAP SUS System using HTTP adapter using PI 7.0.The scenario is
ECC ->PI->SAP SRM. I have configured HTTP adapter as the receiver with addressing type as HTTP Destination. I have created a RFC destination of type H pointing to SAP SUS on PI. I have encountered the following error after executing the scenario.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Call Adapter
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
<SAP:Category>XIAdapter</SAP:Category>
<SAP:Code area="PLAINHTTP_ADAPTER">ATTRIBUTE_SERVER</SAP:Code>
<SAP:P1>500</SAP:P1>
<SAP:P2>Internal Server Error</SAP:P2>
<SAP:P3>Error during parsing of SOAP header</SAP:P3>
<SAP:P4 />
<SAP:AdditionalText />
<SAP:Stack>HTTP server code 500 reason Internal Server Error explanation Error during parsing of SOAP header</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
I have configured HTTP receiver with Addressing type HTTP Destination and configured the HTTP destination field with RFC destination(Connection Type H) created on PI. Here my source and target structures are same i.e DELVRY03. I have triggered DELVRY03 idoc from ECC and i am expecting same xml to be sent to SAP SUS but stuck up with the above mentioned error.
Someone know how fix this problem?
Tks,
ErikHI,
As per my understanding to your scenario, You want to send one IDoc from ECC to SAP SUS system using SAP PI.
So i hope you must have configured on all the steps required to Send one IDoc to PI syste, Secondly, are you using any Standard interface in PI to send data to SAP SUS system? If yes, you need to create an HTTP Destination for that system and then you have to create XI Receiver Adapter with that HTTP destination to post incoming message to SAP SUS system.
Your error suggests you are using Plain HTTP adapter to post data to SAP SUS, which is in my understanding is incorrect.
Regards
Aashish Sinha
Edited by: Aashish Sinha on Feb 21, 2011 9:15 AM -
How to keep incoming IDoc-No.?!
Hi, i am a freshman and i need some help!
Because we send IDoc from R/3 to R/3 across XI we want to have the same IDoc-No. in receiver system like it was given in sender system.
We already activated the checkbox "Apply control record values from payload" but when we check in IDX5 the inbound and outbound idoc-no. differs.
I read that this should be possible to achieve that the inbound and outbound no are the same! How can i achieve this solution?!
Can u help me!?
brOk, now i want to do a RFC-Lookup to the Table IDXRCVPOR for getting the original incoming IDoc-Number.
I use this code in field-mapping:
String DBTABLE = a[0];
String lookUpField = d[0];
String WHERE_CLAUSE = b[0]+" = "+"'"+c[0]+"'" ;
String sapClient = "100";
String hostName = "server";
String systemNumber = "00";
String userName = "USER";
String password = "PW";
String language = "EN";
JCO.Repository mRepository;
JCO.Client mConnection = JCO.createClient(
sapClient,
userName,
password,
language,
hostName,
systemNumber );
// connect to SAP
mConnection.connect();
// create repository
mRepository = new JCO.Repository( "GenericRFCMappingLookup", mConnection );
// create function template to select data from any table
JCO.Function function = null;
IFunctionTemplate ft = mRepository.getFunctionTemplate("RFC_READ_TABLE");
function = ft.getFunction();
// Obtain parameter list for function
JCO.ParameterList input = function.getImportParameterList();
// Pass function parameters
// set import parameters table name and RFC
input.setValue( DBTABLE, "QUERY_TABLE");
input.setValue( "," , "DELIMITER");
//Fill the where clause of the table
JCO.ParameterList tabInput = function.getTableParameterList();
JCO.Table inputTable = tabInput.getTable("OPTIONS");
inputTable.appendRow();
inputTable.setValue(WHERE_CLAUSE,"TEXT");
mConnection.execute( function );
//Find the position of the field that has to be lookedUp
JCO.Table lookupFieldPos = function.getTableParameterList().getTable("FIELDS");
int pos = -1;
for (int i = 0; i < lookupFieldPos.getNumRows(); i++)
lookupFieldPos.setRow(i);
if (lookupFieldPos.getString("FIELDNAME").equals(lookUpField))
pos = i;
//Get the exact lookupvalue from the position obtained above
JCO.Table valueSet = function.getTableParameterList().getTable("DATA");
for (int i = 0; i < valueSet.getNumRows(); i++)
valueSet.setRow(i);
String resultSet [] = valueSet.getString("WA").split(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");
result.addValue(resultSet[pos]);
mConnection.disconnect();
But when i try a test in mapping i am getting this error:
Runtime exception during processing target field mapping /SYSTAT01/IDOC/E1STATS/DOCNUM. The message is: Exception:[com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: A dynamically specified column name is unknown.]
Can somebody help me again?! -
Hi, Friends,
I have a strange problem.
The incoming IDOC in idx5 list miss a segment although the meta data is renewed.
Could sb. help?
Thanks and Reguards
ZhipingHi Krishna, Hi Jakub,
I tried both. But it remains.
Still strange is, the ALEAUD idoc with Z-Segment containd in E1PRTOB-Segment produced by the sending system contains some E1STATE segments. But the number of ALEAUD idocs recieved in IDX5 list is the number of the E1STATE segments in sending system. And every recieved ALEAUD idoc contains only one E1STATE-Segment
Why is it splitted? and where?
Thanks
Zhiping -
Send/Receive IDOCs (XML) from/to SAP R/3 with XI-SOAP without XI!
Dear SAP specialists,
(BACKGROUND) We are using the Microsoft BizTalk Adapter for SAP 1.0, developed on top of the SAP DCOM Connector (we are using the version 6.20 Patch Nr. 177), with Microsoft BizTalk Server 2002 SP1 in order to send and receive IDOC via the tRFC transport protocol. We are using the Microsoft BizTalk Adapter for SAP 1.0 since February 2002, and today we are exchanging more than 25,000 IDOC/day with this architecture.
When we migrate our SAP R/3 system to the version 4.7 with WAS 6.20, I was very enthusiastic about the possibility of sending the IDOC in XML via the standard HTTP transport protocol, because it would considerably simplify my architecture, i.e. no need of any (expensive) adapter any more! But, I had to realise that the quality of service exactly once will not be there anymore with HTTP as it exists with tRFC. Then, we carry on using the tRFC transport protocol with the adapter.
(QUESTION) But recently, I followed the SAP Course TBIT40 XI Foundations and I learn that:
1. On one hand, the XI-SOAP protocol supports the quality of service exactly once by the usage of a message GUID within the XI-SOAP envelope;
2. On the other hand, all mySAP solutions using WAS 6.20 (or higher) carry a small Integration Engine (with XI-SOAP as the native transport protocol).
Then, my question is: << Is it possible to exchange IDOC (XML) directly with an SAP R/3 4.7 (WAS 6.20) via the XI-SOAP transport protocol using the small Integration Engine embedded into it, with the quality of service exactly once? >>
Many thanks in advance and best regards,
Patrice KrakowHello Patrice
We have same issue. Is it possible to use IDoc (XML) directly with SAP 5.0 with SOAP (HTTP) without XI?
Since your que is three years old, I'm sure you must have found some method for this.
We'll highly appreciate your help.
Regards: Gaurave -
Terminated by user problem in incomming idoc while creating the sales ord
This is a file to idoc issue.
Idoc basic type: ORDERS03
When an SO is created by an incoming idoc, problem comes with status u201Cterminated by useru201D with 51 status.
When we tried to post this issue in BD87 t.code the document posts with out any issue.
We are not able to create this issue in Quality box as well,
Experts let us know if you have ever faced such problem in user system."Terminated by user" means what it says. Someone has physically interrupted processing of the IDoc. That's all there is to it.
-
Issue with the configuration of http xml port for sending the idoc
Hello,
I am planning to send multiple idocs in a single file using http xml port.
Presently I am trying to send a single idoc, but am having the issue.
I am trying to create a RFC for HTTP XML port of type H i.e. HTTP Connection to ABAP System
In the how to guide for - How Tou2026 Send Multiple IDocs Within One XI Message
( https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/30ea2fdf-f047-2a10-d3a2-955a634bde6b )
the following parameters are defined for the path prefix -
RFC destination of type H (HTTP Connection to R/3 System).
Specify the path prefix as follows:
/sap/xi/adapter_plain/
?namespace=< your namespace>
&interface=<IDoc_Type>
&service=<Sender System>
&qos=EO (or EOIO).
I am trying to use the following prefix -
/sap/xi/adapter_plain/
?namespace=urn:sap-com:document:sap:idoc:messages ( this is the standard namespace of SAP for all the idocs)
&interface=DEBMAS05 (Idoc type )
&service=SNDLS100 ( ECC system name )
&qos=EOIO
On testing the RFC connection, I am getting the error of page not found.
Can anyone please give me pointers for the issue.
Regards,
MayankThanks Barry!!!
Now I am getting a different message.
In RFC...it is giving me the following message ->
Status HTTP Response 204
Status Text Body is empty
In case of Idoc, the status is till 02...
the error description for the idoc is --
"When transferring the IDoc by HTTP, the return code with the message '500<SAP:Error><SAP:Category>XIServer</SAP:Category><S' has occurred.
The target address was: http://emgeccsnd1:8001/sap/xi/adapter_plain/?namespace=urn:sap-com:document:sap:idoc:messages&interf
Check whether the IDoc can be sent again.
It is unfortunately not possible to determine automatically whether the IDoc has in fact arrived in the target system and the error occurred afterwards"
I am still not able to resolve the issue.
Regards,
Mayank -
What all configurations to do in SAP R/3 to send an iDOC to XI system
I want to send an idoc from an SAP R/3 ECC5.0 to an XI system Netweaver 04's.
Pls let me know the STEPS I HAVE TO DO IN MY r/3 SYSTEM .
I have created the RFC destination in R/3 and XI system but still the idoc is not going into XI system.
It would be a great help if i can get step bu step guide for the configurations i have to do in R/3 .Hi,
First check the status , with we02
Also see the below links
IDOc testing - /people/suraj.sr/blog/2005/12/29/generate-test-case-for-an-idoc-scenario
/people/prateek.shah/blog/2005/06/08/introduction-to-idoc-xi-file-scenario-and-complete-walk-through-for-starters - IDoc to File
/people/sravya.talanki2/blog/2005/10/27/idoc146s-not-reaching-xi133-not-posted-in-the-receiver-sap-systems133 - Idocs not reaching XI . Not posted in the receiver SAP
idoc settings /people/ravikumar.allampallam/blog/2005/02/23/configuration-steps-required-for-posting-idocsxi
idoc erros - http://help.sap.com/saphelp_nw04s/helpdata/en/6a/e6194119d8f323e10000000a155106/content.htm
IDoc erros troubleshooting - /people/raja.thangamani/blog/2007/07/19/troubleshooting-of-ale-process
idoc mapping - /people/james.guanzon/blog/2006/03/23/how-to-support-industry-standards-in-xi-part-ii-of-iii--mapping
Regards
Chilla -
Get File name from incoming IDoc
HI All,
I am in an IDOC to File scenario using Fcc. (R/3 --> XI --> 3rd party)
I need to use the idoc-number(EDI_DC40-Docnum) as my output file name. I planned using variable substitution but there it expects me to get the idoc number from payload which I do not have it in. (refer c ode below)
As I understand, variable substitution can be used only on payload(the FINAL data set that we will be writing to the file).
Can we use the data which is part of incoming IDOC and not part of payload(final data what we are writing to file).??
Other idea was to map this IDOC no to a field in final file, but this field should not be written in the output file, so am confused about how to achieve this.
E.g
*Incoming Data*
IDOC
|_EDI_DC40
|_DOCNUM
Final data (Payload)
Header
Data
Trailer
As seen in my example above I do not have the IDOC no in the final data so how do I use the Idoc no as my filename? Apprecaite your help on same.
Regards
ShirinHi
You can use dynamic configuration to get the file name .
Use Adapter Specific Message Attributes for the target Comm Chanel check the indicator for filename in the advanced tab of CC
create a UDF with i/p as file name i.e the Idocnum field and
paste this code
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
//conf.removeAll();
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
//String filename= conf.get(key);
conf.put(key, fileName);
key= null;
return fileName;
PS: use cache as value in UDF
ands assign the o/p of this UDF to a root node -
ABOUT DATA SENDING IN idoc TO file SCENARIO
How the data is sended in idoc to file scenario?
what is the difference in sending data through BD10, BD14 and WE19 ?
Is the data is sended through XI OR R/3 SYSTEM?Hi Rammohan
>> How the data is sended in idoc to file scenario?
Makeing settings in SAP R/3 side then based on the RFC
destination,port,parterner profiles.....
Idoc can hold the data with out any direction but RFC port will direct where to
go ...based on the partner profiles (Out buond IDOCS)
>>what is the difference in sending data through BD10, BD14 and WE19 ?
BD10,BD11,BD12,BD13,BD14 will be to send the master data automatically
generally will be in the production(But not for testing) and this will be depending
on the declaration of profiles in the BD64
--- But we19 will be used to test the Idocs with any data
but here we need to give all the parameters like senders,receivers,ls,idoc...
>> Is the data is sended through XI OR R/3 SYSTEM?
Data will send through XI i.e XI will receive the Idoc and Convert into XI specific
SOAP XML message and process all the pipe line steps ...based on the target
it will send
Here target is file so choose the file adapter as target and give all parameters
it will work fine
I hope this will answer your question
regards
--- prasad -
Problem in processing incoming IDOC
Hi All,
I have a problem while processing Incoming IDOC in the system.
While I try to process and FI IDOC (without purchase order) in the system, by giving the appropriate GL account and cost centre where the document should get posted to (in transaction WE19), I find that the system creates the IDOC successfully with status 53. However, it creates a parked document in the system for the vendor.
When I try to post the document through transaction FBV0, the system asks for a cost centre. Can you please clarify, why the system is asking for a cost object though it is given in WE19 transaction. Ideally while processing the IDOC the system should post the document directly as it has all the relevant details in the IDOC right?
(Just for info, I have given the GL account details in segment E1EDP19 with qualifier 002 and the cost centre in segment E1EDP30 with qualifier 045)
Expecting your help in this regard.
Regards
Nagarajan NHi
You can use WE19 to debug the Idoc FM.
Check this link if it is helpful:
Debugging Idocs
Regards
Neha -
Is it possible to use BAPI-ALE to send an idoc using the message control?
Hi Guys
Is it possible to use BAPi-ALE to send an IDOC using a message control?
I have configured the system to send an IDOC when a outbound delivery is saved in the system.
I have done the following.
1). I am using the std BAPI-ALE interface provided by the object type LIKP.
2). I am using the method SAVEREPLICA for which an interface already exists in BDBG transaction.
3). I hace created a distribution model in BD64 and added the BAPI - LIKP and SAVEREPLICA
4). Created a partner profile ( using the generate partner profile option in the BD64 transaction )
QUESTION:
1). How do i associate the custom OUTPUT type created for Delivery ?
2). I tried to associate the custom output type in the Partner profile definition under the message control tab but i am not sure which Process code to be used? Since the partner profile was generated automatically from BD64 it has an entry for SHP_OBDLV_SAVE_REPLICA as a message type in the outbound parameters. and i am unable to find a process code for this Message type in WE41. So what process code should i use in the Message control tab against the custom output type?
3). Do i need to leave the message control tab empty without making any entry? If yes then how would the system come to know that it needs to trigger this partner profile when the custom output type is proposed by the system?
will award points for useful answers
Edited by: Workflow learner on May 29, 2008 8:49 PM"any way"
Applications such as ScreenRecycler, http://www.screenrecycler.com/ScreenRecycler.html, can do it. -
Hi Experts,
1, When the sender post idoc to PI it shows the following
error in sender sap system.
Error:No service for system SAPQ01 client 118 in integration directory
2, Is it possible to post the idoc to PI With out activating the integ directory Object in PI(Integ.repoistery activated).
3, If possible, where can i see the idoc datas in PI before activation.
ThanksHi Raja,
You send IDocs from system ABC to XI. In the control record of the IDoc,the SNDPOR field contains the value "SAPABC". The client of the sending system is determined by the MANDT field of the control record. The system ID and client are then used to determine a service without party of the
type (business-system/business-service):
Business system
-> Activities in the System Landscape Directory (SLD)(Create technical
system):
Create a technical system for system ABC in the SLD, and create the client for this. Do not forget to assign an "ALE logical system" (for example, "ABCCLNT123") to this technical system.
SLD (Business system):
You can now explicitly assign a business system to this client. For more details, refer to the SLD documentation.
Activities in system ABC (self-registration in the SLD):
Alternatively, you can register the system in the SLD in system ABC with Transaction RZ70. You will find detailed information about the SLD registration of systems on the SAP Service Marketplace for the
"Exchange Infrastructure" in the document "Exchange_Installation_Guide.pdf".
In system ABC, you can check your configuration with Transaction SLDCHECK.
Activities in Integration Directory (import business system from SLD):
You will find the business systems under Services Without Party in the Integration Services. In the Service menu, you will find the system identifiers, the client, and the corresponding ALE logical
system under "Objects"->"Adapter-specific identifiers". Use the Import/Update button to copy the data from the SLD, to create business systems, or to update their identifiers.
Business service
-> Activities in the Integration Builder directory:
You want to create a service without party that is not part of your system infrastructure and is therefore not maintained in the SLD. In the Integration Builder directory, you will find the "Business-Services" under Services Without Party. In the Service menu, you will find the system identifiers, the client, and the corresponding ALE logical system under "Objects"->"Adapter-specific
identifiers".
Activate the change list in Integration Directory.
In system ABC, you can restart the incorrect entry from Transaction SM58 .
Regds,
Pinangshuk. -
since updating to ios 7.0.4 my iphone 4s hads been intermitently failing to ring or it is sending incoming calls directly to voicemail. The ringer is on and the mute switch is not in the mute position.
Mine too... I'm missing calls like crazy.
Maybe you are looking for
-
Which solution for better perfomance?
I'm writing java application based on XML. This application have to store very large XML file into DB (XML file is about 1000MB large). My solution is to divide it into smaller (100MB) parts (because of memory resources) and store it in DB. I have on
-
Hello I want to Make Tree In Forms6 and I want to search in it and When I Select any Employee Name From The Tree Iwant to Show The Other Data of this Employee In The Left Side of the Screen Can You Help Meeeeeeeee Thanks [email protected]
-
Required help in improving the performance
Hi I am very new to java concept, I am working with an API, where the records are being processed in for loop, and taking time, to process 10k records it is taking almost 35 min, and as I have incorporated in my apex, if the multiple users using the
-
How to view object privileges of a user in Oracle10g?
I try to view the object privileges of a user through the table user_object_privs but it didn't work. I didn't get the correct name of the table or there were some problem with my Oracle. Please help me. Thanks a lot.
-
PM Order settlemet error with recive account
Hi When im going to settle the PM Order to AUC ( Asset under construction ) it gives following error pls advice how to solve this issue. Your quick response highly appreciated!! Regards Kesh