EDIDC40
Hi
I have a doubt about mapping. Why do we disable EDIDC 40 field when Idoc is receiver ? Do we do that always ? And when we disable it do we have to check the option " Apply control record values from payload " In the IDoc receiver communication channel ?
Midhun
I thought the sender and receiver systems and partner numbers info are taken from the control record of the Idoc.
Yeah thats right when we check the option Apply Control Record Values from Payload .And control record is EDIDC40 node.
When do we check the option so that details would be taken from EDIDC40 ? Is it when we need the data at runtime only or when there it's a receiver Idoc so that we cannot specify control record details in WE19 transaction which is
created only when R/3 system is the sender of Idoc ?
Receiver Idoc adapter only. When we pass the values explicitly in EDIDC40 we check it.
Regards
Soumen...
Similar Messages
-
LSMW - BUS1001001 - EDIDC40 Message
I'm trying to set up LSMW to update characteristics on materials using object BUS1001001 and IDOC ARTMAS. When I try and generate the IDOC's I get an error message as below. Anyone know what is causing the problem? It is not a Unicode file.
Message no. EA042
Diagnosis
The file 'ZCOLOURS_ZCOLOURS_ZCOLOURS.lsmw.conv' is not processed.
When starting IDoc inbound processing, the port 'LSMW' was transferred. This port is defined so that the file is not expected in Unicode format.
The 'EDI_DC40' indicator was therefore expected in the control record, but instead 'EDI_DC40_U' is there.
System response
Ensure that the inbound file really is not a Unicode file.
Procedure
If it is a Unicode file, change the port definition and then start inbound processing again.
If it is not a Unicode file, then the file must be generated with the indicator 'EDI_DC40'.
The creator of the file must agree to this.I was wrong - the partner did have the Unicode flag set wrongly in the environment I was working in.
-
Hi all
I am doing a scenario IDOC - Xi - IDOC where CRM sends an IDOC to R/3 via PI.
I have configured everything in OCC (CRM system), PI and BSC (R/3 system) but when I test it with the transaction WE19 in OCC nothing happens in PI or BSC.
All i can see if a message in SM58 transaction in OCC.
Function Module - IDOC_INBOUND_ASYNCHRONOUS
Target System - XI.
Status Text - No service for system SAPOCC, client *** in Integration Directory.
Could anyone tell me what is the problem.
Your help will be very much appreciated
Regards
NainaError message: No service for system SAPCRD client 201 in the integration directory
Cause: There is no service without party in PI server that represents OCC server with client details.
Solution:
We send IDocs from system OCC to PI. In the control record (Segment EDIDC40) of the IDoc, the SNDPOR (SenderPort) field contains the value "SAPCRD". 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)
In System Landscape Directory (SLD) create a technical system for OCC system and assign a client for the same. Don't forget to assign an "ALE logical system" to the technical system created. Create a business system for this technical system. Then Business System can be imported under service without party/update the details existing in PI.
Edited by: Rodrigo Alejandro Pertierra on Jun 23, 2010 10:28 AM -
Uploading xml file in a background job .
Hi Experts ,
I am uploading a xml file from application server to internal table .
While uploading from presentation server I get the value of stream as ( first few lines )
Case 1 :
?<?xml version="1.0" encoding="utf-16" standalone=
"yes"?><WPUBON01>## <IDOC BEGIN="1">## <EDI_DC
40 SEGMENT="1">## <TABNAM>EDI_DC40</TABNAM>##
but while uploading from application server , I get :
Case 2 :
<?xml version="1.0" standalone="yes"?>##<WPUBON01>## <IDOC BEGIN="1">## <EDI
DC40 SEGMENT="1">## <TABNAM>EDIDC40</TABNAM>## <MANDT>108</MANDT>##
Difference is of unicode 16 as seen in file from presentation server .
As a result File from Presentation server is getting uploaded in internal table , but not from Application Server . In this case internal table is coming blank .
I am using :
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = stream
IMPORTING
buffer = xstring
EXCEPTIONS
failed = 1
OTHERS = 2.
IF sy-subrc = 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
here xstring is coming blank when you use same file from application server .
*Extract data from xsting to internal table
CALL FUNCTION 'SMUM_XML_PARSE'
EXPORTING
xml_input = xstring
TABLES
xml_table = it_data
return = it_ret.
I am getting error it it_ret as :
line 1 col 1-unexpected symbol; expected '<', '</', entity reference, character data, CDATA section, processing instruction or comment
How to get file like case 1 . or how to convert to utf-16 ?
I am using :
OPEN DATASET l_filename FOR INPUT IN BINARY MODE .
DO.
READ DATASET l_filename INTO l_xml_line.
IF sy-subrc EQ 0.
APPEND l_xml_line TO l_xml_table.
ELSE.
EXIT.
ENDIF.
ENDDO.
CLOSE DATASET l_filename.
LOOP AT l_xml_table INTO l_xml_line.
c_conv = cl_abap_conv_in_ce=>create( input = l_xml_line-data
replacement
= space ).
c_conv->read( IMPORTING data = l_content len = l_len ).
CONCATENATE l_str1 l_content INTO l_str1.
ENDLOOP.
Help please ......
regards ,
SAHi Alpana ,
Thanks for the reply .
I already am uploading data in internal table . If you see through my question ,
My problem is modify the error in xml file uploaded in l_xml_table through read dataset .
My file has been uploaded from application server as
<?xml version="1.0" standalone="yes"?>
<WPUBON01>
<IDOC BEGIN="1">
This file is getting changed while uploading from presentation server as
?<?xml version="1.0" encoding="utf-16" standalone=
"yes"?><WPUBON01>## <IDOC BEGIN="1">## <EDI_DC
40 SEGMENT="1">## <TABNAM>EDI_DC40</TABNAM>##
<MANDT>108</MANDT>## <DOCNUM>3C10000001
notice the addition 'encoding="utf-16" ' .
How to achieve this addition .
If i am uploading it frompresentation server it is getting uploaded in internal table successfully , but not from application server
so that i can parse this xml file into xstring successfulyy to get it into internal table thru function module
CALL FUNCTION 'SMUM_XML_PARSE'
EXPORTING
xml_input = xstring
xml_input = l_string_output
TABLES
xml_table = it_data
return = it_ret.
Please help me in hanging the file stream .
Regards ,
SA -
Dear all,
We are upgrading to PI 7.1 and have a problem in a scenarie where PI is sending IDOC to R3.
The problem is probably related to the fact that it is not possible to write a logical system name in SLD for the R3 system. I can not read the logical system name for the R3 system into the Directory (adapter specific identifier), *because the logical system for the R3 bussines system is not an input file??*. How can i enter the logcal system name so i avoid following error:
<?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="IDOC_ADAPTER">ATTRIBUTE_INV_RCV_SERV</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:Stack>Receiver service cannot be converted into an ALE logical system</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Regards UgurThere are two ways....
Option 1 : Go to the BS of ur R3 system in Integration Direction. Go to edit mode mode and select Properties -> Adapter Specific attributes - > enter the LS name and save...
Option2 : You can use it from the mapping.... U either hard code/use from source the EDIDC40 section of ur mapping and the in ur IDOC receiver config select the option user
Option ! is the best soln...All the IDOC to that R3 system will go the specified LS...
regards,
Arvind R -
Idoc with XSLT Mapping ALE service error
Hi all,
I have the same problem with "converting to an ALE logical system".
In this case I have a Business System without logical system name in the SLD. This information for the IDoc control record, like SNDPOR, I will map with a xslt mapping.
In weblogs from Michael are the properties for the directory described.
/people/michal.krawczyk2/blog/2005/09/01/xi-idoc-adapter--edidc40--demystified
I selected in the comminication channel the last two check boxes, as described in SAP help.
"Take Sender from Payload
If you want to take the sender of the message from the payload and not from the configuration information in the Integration Directory, set this indicator.
If you do not set the indicator, the information is taken from the configuration in the Integration Directory.
Take Receiver from Payload
If you want to take the receiver of the message from the payload and not from the configuration information in the Integration Directory, set this indicator.
If you do not set the indicator, the information is taken from the configuration in the Integration Directory.
If you set both of the above indicators, you do not require a heading mapping and do not need to set the alternative identifiers.
However, you must ensure that the SNDPRN, SNDPRT, RCVPRN, and RCVPRT fields are set in the IDoc control record.
Setting the senders and receivers of a message from the payload simplifies configuration and speeds up processing.
If the sender and receiver are not set correctly in the payload, the resulting error is only visible in the receiving system. "
In my XSLT-Mapping I set the appropriate Idoc fields:
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:preserve-space elements="*"/>
<xsl:template match="DATEN">
<_-XXX_-018_XXXXX_XIDATEN>
<IDOC>
<xsl:attribute name="BEGIN">1</xsl:attribute>
<EDI_DC40>
<xsl:attribute name="SEGMENT">1</xsl:attribute>
<TABNAM>EDI_DC40</TABNAM>
<DOCREL></DOCREL>
<DIRECT>2</DIRECT>
<IDOCTYP>_-XXX_-018_XXXXX_XIDATEN</IDOCTYP>
<MESTYP>_-XXX_-018_XXXXX_XIDATEN</MESTYP>
<SNDPOR></SNDPOR>
<SNDPRN>XXXXX01IN</SNDPRN>
<SNDPRT>LS</SNDPRT>
<RCVPOR>xxx</RCVPOR>
<RCVPRN>xxx</RCVPRN>
<RCVPRT>LS</RCVPRT>
</EDI_DC40>
<xsl:variable name="pid" select="substring(.,1,1)"/>
But in the sxmb_moni the message is red with the error message :" converting to an ALE logical system"
Have you any idea?
With another interface I used a graphic Mapping and the same properties in the directory and it works.
Bye
StefanHi togehter,
it works now, after cpa_cache and sxi_cache.
and and ...
<IDOCTYP>/XXX/018_XXXXX_XIDATEN</IDOCTYP>
<MESTYP>/XXX/018_XXXXX_XIDATEN</MESTYP>
Without: _-...
I would write a blog.
Does know one how that goes here?
Thanks
SDN is great
Stefan -
Populating MESFCT and MESCOD in IDOC control record through XI.
Hi Experts,
I want to map only MESFCT and MESCOD fields to IDOC control record as i see help.sap.com and all forums this part in XI is very confusing, as mentioned in the below thread i disabled all the mandatory fields(which are in red color) in the EDI_DC40 and mapped MEDCOD and MESFCT with constants and in IDOC receiver adapter (Communication channel) i have checked the option (Apply Control Record values from Payload) , now i can see both the values MEDCOD and MESFCT in XI payload, however I'm unable to see them in the target (ECC 6.0) system
Threads Used:
/people/sravya.talanki2/blog/2005/12/02/manipulating-idoc-control-records-from-payload
/people/michal.krawczyk2/blog/2005/09/01/xi-idoc-adapter--edidc40--demystified
SAP Note : 728792
Target System
WE09
IDOC control record structure.
Under Typinfo tab:
Message Varient : <Still Empty>
Message Function : <Still Empty> not populated from XI payload.
Any guess ??? will there be any configurations required from ECC point of view to populate these values from XI payload.
Thanks in advance
Kelli.You mentioned that the payload values are visible post mapping during runtime so ,
Try to edit the IDoc adapter once again and ensure that
you have set the Apply Control Record Values from Payload indicator in the receiver IDoc adapter
Activate the adapter and try again. -
Seeburger AS2 Adapter - Dynamic Attributes
Dear all,
We have a scenario where, we are sending an IDOC from our SAP system via XI to one of our partner using AS2.
We have to manipulate the file name at the receiver end using the dynamic attributes of the AS2 communication channel.
As per the documentation and the following threads
Re: File to AS2 File Name? we have done the necessary configuration in the communication channel. The following activites are done
Selected the checkbox "Use dynamic attributes"
Under the Module tab
In Processing sequence added a new entry
Number 1
Module Name : localejbs/Seeburger/solution/as2
Module Type : Local enterprise bean
Module Key : "dynfile"
Under the Module Configuration added the following details
Module key : "dynfile"
Parameter Name : "http://seeburger.com/xi/AS2/dtAS2FileName"
Parameter Value : "DYNFILENAME"
However, I understand that this configuration is incomplete, as somewhere i need to pass the value to the variable "DYNFILENAME".
As per the thred Re: File to AS2 File Name?, Mr Srinivas Reddy mentioned 5 steps, however I am not clear about the step 3 & 4.
FYI : What I want to map as the file name is the Parter Profile in the EDIDC40 segment of the idoc and the date+time stamp
Many thanks for the help , in advance
Regards : Bobby Bal
Edited by: Bobby Bal on Sep 20, 2010 9:52 PMHi,
Use the below UDF in your mapping..
public String FileName(String a,Container container){
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters()
.get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://seeburger.com/xi/AS2","dtSubject");
conf.put(key, a);
As per your requirement, Use Concatenate function Idoc + Date + Time .
Pass the resultant value to the UDF and pass this to any unused Target node.
IDOC + Time+Date --> UDF --> Target node.
In your receiver AS2 adapter, Click on use dynamic attributes and Subject check boxes.
If you want to use other Dynamic attributes like dtAS2FileName, dtAS2ContentType ..
Simply replace the dtSubject with dtAS2FileName or dtAS2ContentType . No need to use any modules.
Thanks
Deepthi. -
IDOC Scenario: Filling ED40 in XI to SAP automatically or not
Hello,
I was trying to let XI fill the ED40 data of my IDOC and set the flag in
receiver channel, that he should not take these information from payload.
It seems he took wrong data. So from where he take these information?
I disabled the ED40 segment in mapping. So in sxmb_moni I couldn't see
the information he put into the fields. If I don't disable them, he says that
required fields are not mapped.
thanks
chris
Edited by: Christian Riekenberg on Jul 10, 2008 1:16 PM> I disabled the ED40 segment in mapping. So in sxmb_moni I couldn't see
> the information he put into the fields. If I don't disable them, he says that
> required fields are not mapped.
Hi,
if you look into ED40 segment you will see there are some fields with occurrence 1:1, and that means you have to have some values in those fields (if not disabled this segment). Either you map the hard coded the vaules using constant function or map with some other source fields to these mandatory fields. But make sure there shuld be some data in case if you map with source fields.
So this is the reason you are getting a message "required fields are not mapped".
IF you are using EDIDC40 then you have to tick the check box take the values from payload, otherwise If you disable EDIDC40 then the values will be automaticall taken care by XI.
Regards,
Sarvesh -
Error: Sender Not in Payload
Dear All,
I m doing FILE_XI_IDOC(CREMAS03) scenario. I am getting the following error in SXMB_MONI:
<?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="IDOC_ADAPTER">ATTRIBUTE_IDOC_METADATA</SAP:Code>
<SAP:P1>Copy sender from payload: Sender not in payload</SAP:P1>
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack>Error: Copy sender from payload: Sender not in payload</SAP:Stack>
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
I have seen some already posted queries (ATTRIBUTE_IDOC_METADATA : Sender not in payload) regarding this and they suggest to <b>Populate SNDPRN with the valud Sender Partner Name in the mapping and then process the IDOC</b>.
But I am not able to get where we have to update this value. Please guide me regarding this.
Warm Regards,
N.Jainhi,
1. you can put the sender field in your mapping
open EDI_dc40 semgne of your IDOC (cremas)
and find SNDPRN field
2. you can also have a look at my blog:
/people/michal.krawczyk2/blog/2005/09/01/xi-idoc-adapter--edidc40--demystified
3. for IDOC-XI scenario you can also
have a look at my book:
<a href="/people/michal.krawczyk2/blog/2006/10/11/xi-new-book-mastering-idoc-business-scenarios-with-sap-xi"><b>Mastering IDoc Business Scenarios with SAP XI</b></a>
you can also make disable the edidc40 segment in mapping
and uncheck - use sender from the payload
in idoc receiver adapter and it will be filled with defaults
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a> -
Idoc to jdbc scenario of sap xi
Hi All,
i want step by step procedure for developing idoc 2 jdbc scenario. Anybody have this scenario, please send me that.
Thanks & Regards,
Nagarjuna.Hi
Have a look at these threads
/people/laxman.molugu/blog/2006/08/13/integration-with-databases-made-easy-150-part-1
Re: Idoc triggering from a transaction
Message Mapping - JDBC to IDoc
Re: JDBC - System/Application Acknowledgement
/people/michal.krawczyk2/blog/2005/09/01/xi-idoc-adapter--edidc40--demystified
Process Integration (PI) & SOA Middleware
**Reward points if helpfull** -
Hi ,
i am using the following ABAP mapping program
method if_mapping~execute .
data: t_edidc type table of edi_dc40,
ls_edidc type edi_dc40,
ls_edidc_h type edi_dc40,
t_edidd type table of edi_dd40,
ls_edidd_h type edi_dd40,
ls_idx_xmb type idx_xmb,
t_result type string,
t_resultc type string,
t_resultd type string.
data: ls_idx1 type idxporsm59.
data: t_segtyp type table of edilsegtyp,
el_segtyp type edilsegtyp,
el_released type segdefrel,
el_error_text type string.
=======================
0. parse input document
=======================
initialize iXML
type-pools: ixml.
break-point.
class cl_ixml definition load.
create main factory
data: ixmlfactory type ref to if_ixml.
break-point.
ixmlfactory = cl_ixml=>create( ).
create stream factory
data: streamfactory type ref to if_ixml_stream_factory.
streamfactory = ixmlfactory->create_stream_factory( ).
create input stream
data: istream type ref to if_ixml_istream.
istream = streamfactory->create_istream_xstring( source ).
initialize input document
data: idocument type ref to if_ixml_document.
idocument = ixmlfactory->create_document( ).
parse input document
data: iparser type ref to if_ixml_parser.
iparser = ixmlfactory->create_parser( stream_factory = streamfactory
istream = istream
document = idocument ).
iparser->parse( ).
=================================================
1. get IDoc header data and connection parameters
=================================================
data: el_message_id type sxmsguid.
el_message_id = param->get( if_mapping_param=>message_id ).
data: el_element type ref to if_ixml_element.
el_element = idocument->find_from_name( 'TABNAM' ).
ls_edidc-tabnam = el_element->get_value( ).
el_element = idocument->find_from_name( 'MANDT' ).
ls_edidc-mandt = el_element->get_value( ).
el_element = idocument->find_from_name( 'DOCNUM' ).
ls_edidc-docnum = el_element->get_value( ).
el_element = idocument->find_from_name( 'STATUS' ).
ls_edidc-status = el_element->get_value( ).
el_element = idocument->find_from_name( 'OUTMOD' ).
ls_edidc-outmod = el_element->get_value( ).
el_element = idocument->find_from_name( 'TEST' ).
if not el_element is initial.
ls_edidc-test = el_element->get_value( ).
endif.
el_element = idocument->find_from_name( 'IDOCTYP' ).
ls_edidc-idoctyp = el_element->get_value( ).
el_element = idocument->find_from_name( 'CIMTYP' ).
if not el_element is initial.
ls_edidc-cimtyp = el_element->get_value( ).
endif.
el_element = idocument->find_from_name( 'MESTYP' ).
ls_edidc-mestyp = el_element->get_value( ).
el_element = idocument->find_from_name( 'STDVRS' ).
if not el_element is initial.
ls_edidc-stdvrs = el_element->get_value( ).
endif.
el_element = idocument->find_from_name( 'STD' ).
if not el_element is initial.
ls_edidc-std = el_element->get_value( ).
endif.
el_element = idocument->find_from_name( 'STDMES' ).
ls_edidc-stdmes = el_element->get_value( ).
el_element = idocument->find_from_name( 'SNDPOR' ).
ls_edidc-sndpor = el_element->get_value( ).
el_element = idocument->find_from_name( 'SNDPRT' ).
ls_edidc-sndprt = el_element->get_value( ).
el_element = idocument->find_from_name( 'SNDPRN' ).
ls_edidc-sndprn = el_element->get_value( ).
el_element = idocument->find_from_name( 'RCVPOR' ).
ls_edidc-rcvpor = el_element->get_value( ).
el_element = idocument->find_from_name( 'RCVPRT' ).
ls_edidc-rcvprt = el_element->get_value( ).
el_element = idocument->find_from_name( 'RCVPRN' ).
ls_edidc-rcvprn = el_element->get_value( ).
el_element = idocument->find_from_name( 'CREDAT' ).
ls_edidc-credat = el_element->get_value( ).
el_element = idocument->find_from_name( 'CRETIM' ).
ls_edidc-cretim = el_element->get_value( ).
el_element = idocument->find_from_name( 'SERIAL' ).
ls_edidc-serial = el_element->get_value( ).
ls_edidc-direct = '2'.
move-corresponding ls_edidc to ls_idx_xmb.
Connection data to application system to get IDoc metadata
select single * from idxporsm59 into ls_idx1
where port = ls_edidc-sndpor
and client = ls_edidc-mandt.
ls_idx_xmb-port = ls_edidc-sndpor.
ls_idx_xmb-rfcdest = 'NONE'. "not necessary
Get DOCREL and SAPREL
el_element = idocument->find_from_name( 'DOCREL' ).
if not el_element is initial.
ls_edidc-docrel = el_element->get_value( ).
else.
select segtyp into table t_segtyp from idxidocsyn
where port = ls_edidc-sndpor
and idoctyp = ls_edidc-idoctyp
and cimtyp = ls_edidc-cimtyp.
loop at t_segtyp into el_segtyp.
select released into el_released from idxedisdef
where port = ls_edidc-sndpor
and segtyp = el_segtyp
and actrelease = 'X'.
endselect.
if el_released gt ls_edidc-docrel.
ls_edidc-docrel = el_released.
endif.
endloop.
endif.
======================================
2. convert XML to IDoc table structure
======================================
break-point.
call function 'IDX_XML_TO_IDOC'
exporting
xml_data = source
guid = el_message_id
edidc40 = ls_edidc
idx_xmb = ls_idx_xmb
typ_def = 'X'
tables
idoc_control_40 = t_edidc
idoc_data_40 = t_edidd
exceptions
unknown_xml = 1
customizing_error = 2
no_data_found = 3
syntax_error = 4
others = 5.
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
To keep the original DOCNUM uncomment the following 8 lines of coding
Otherwise a new DOCNUM will be created
LOOP AT t_edidc into ls_edidc_h.
ls_edidc_h-DOCNUM = ls_edidc-DOCNUM.
modify t_edidc from ls_edidc_h.
ENDLOOP.
LOOP AT t_edidd into ls_edidd_h.
ls_edidd_h-DOCNUM = ls_edidc-DOCNUM.
modify t_edidd from ls_edidd_h.
ENDLOOP.
=========================================
3. convert IDoc table structure to string
=========================================
call function 'ZSOTR_SERV_TABLE_TO_STRING'
EXPORTING
FLAG_NO_LINE_BREAKS = ' '
LINE_LENGTH = 0
LANGU = SY-LANGU
importing
text = t_resultc
tables
text_tab = t_edidc.
convert IDoc table structure to string
call function 'ZSOTR_SERV_TABLE_TO_STRING'
EXPORTING
FLAG_NO_LINE_BREAKS = ' '
LINE_LENGTH = 0
LANGU = SY-LANGU
importing
text = t_resultd
tables
text_tab = t_edidd.
concatenate t_resultc t_resultd into t_result.
convert string to xstring
call function 'SCMS_STRING_TO_XSTRING'
exporting
text = t_result
MIMETYPE = ' '
ENCODING =
importing
buffer = result.
EXCEPTIONS
FAILED = 1
OTHERS = 2
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
endmethod.
<b> i am getting the following parse error in FM IDX_XML_TO_IDOC :
" unexpected symbol; expected '<', '</', entity reference, character data, CDATA section, processing instruction or comment "
can anybody help
points will be given
Regards</b>HI,
is it possible that you have to use "-" instead of "=" in this [ixmlfactory = cl_ixml=>create( ).] line ?
regards,
gordon -
HI ,
I am trying file service to IDOC scenario and iam getting following error "Unable to convert sender service FilesService_FILE2IDOC to an ALE logical system".
Here file has to be read and IDOC has to be posted in SAP system. Sender is not an SAP system / 3rd Party system ...itz an FILE sender service.
Settings i have done:
In Message Mapping in target IDOC structure i have disabled Control record
In integration directory IDOC Receiver Communication channel i have not selected "Apply Control Record values from Payload".
In receiver determination in header mapping i have put sender sevice "FilesService_FILE2IDOC ".
But still i receive the same error.
I do not want to send control record parameters in Message Mapping .
Pls throw some light on this ....
Regards
SriHi Sridhar,
Regarding your error, below is the answer...
When you create the business system (in the SLD) you assign a "logical system name" or "ALE name". That is used as the ALE name for transporting IDOCs, and the sender system.
You have to also maintain this name in the R/3 System (tx. SALE, WE20), because IDOC will be noted as arriving from that system.
You also told that you dont want to pass the control records value....Do this, just deactivate the control records segments in your message mapping... let me not explain it further.... just check these blogs below for the same,
/people/sravya.talanki2/blog/2005/12/02/manipulating-idoc-control-records-from-payload
/people/michal.krawczyk2/blog/2005/09/01/xi-idoc-adapter--edidc40--demystified
And also go thru the following links to get a better idea about partner profile:
http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b833243d711d1893e0000e8323c4f/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b7cd343d711d1893e0000e8323c4f/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/32/692037b1f10709e10000009b38f839/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/5e/b8f8bf356dc84096e4fedc2cd71426/frameset.htm
I hope this helps you solve your problem.
Regards,
Abhy -
Hi All.
I created a message mapping from a custom message type towards MATMAS_BAPI01.
I disabled the EDI_DC40 field and in the idoc communication channel I disabled "Apply control record values from payload".
When I check the final idoc message created, I noticed that some EDI_DC40 parameters were wrong.
<SAP:TABNAM>EDI_DC40</SAP:TABNAM>
<SAP:MANDT>200</SAP:MANDT>
<SAP:DOCREL>640</SAP:DOCREL>
<SAP:DOCNUM>0000000000037246</SAP:DOCNUM>
<SAP:DIRECT>2</SAP:DIRECT>
<SAP:IDOCTYP>MATMAS_BAPI01</SAP:IDOCTYP>
<SAP:CIMTYP />
<SAP:MESTYP>MATMAS_BAPI</SAP:MESTYP>
<SAP:MESCOD />
<SAP:MESFCT />
<SAP:SNDPOR>SAPCX1</SAP:SNDPOR>
<SAP:SNDPRN>host01</SAP:SNDPRN>
<SAP:SNDPRT>LS</SAP:SNDPRT>
<SAP:SNDPFC />
<SAP:RCVPOR>CFDCLNT200</SAP:RCVPOR>
<SAP:RCVPRN>CFDCLNT200</SAP:RCVPRN>
<SAP:RCVPRT>LS</SAP:RCVPRT>
<SAP:RCVPFC />
<SAP:TEST />
<SAP:SERIAL />
<SAP:EXPRSS />
<SAP:STD />
<SAP:STDVRS />
<SAP:STATUS>03</SAP:STATUS>
<SAP:OUTMOD />
<SAP:SNDSAD />
<SAP:SNDLAD />
<SAP:RCVSAD />
<SAP:RCVLAD />
<SAP:STDMES />
<SAP:REFINT />
<SAP:REFGRP />
<SAP:REFMES />
<SAP:CREDAT>2005-09-12</SAP:CREDAT>
<SAP:CRETIM>23:21:31</SAP:CRETIM>
<SAP:ARCKEY>2FE85D8023D311DA9BDB000D56B9D8A6</SAP:ARCKEY> </SAP:IDocOutbound>
In concrete
<SAP:SNDPRN>host01</SAP:SNDPRN> had to be changed into <SAP:SNDPRN>hostXX</SAP:SNDPRN>. I thought the value host01 came from the sld (logical system name of the technical system attached to the business system), so I changed that towards hostXX.
<SAP:RCVPOR>CFDCLNT200</SAP:RCVPOR> had to be changed into <SAP:RCVPOR>SAPCDD</SAP:RCVPOR>. I thought this value came from the rfc destination in the xi sytem, so I created a new one called SAPCDD and configured it into the idoc adapter.
However, this change in the sld/XI system did not affect the generated idoc (no, I did not forget to activate ).
I decided to do some more drastic changes:
- enable EDI_DC40 field in the message mapping
- enable "Apply control record values from payload" in the idoc communication channel
I now hardcode the wanted values.
After activating the changes, still the same idoc is send towards the R/3 system.
Can anyone tell me what I am doing wrong.
Is it a caching problem or am I doing something wrong.
Kind regardshi Geert,
take a look at my weblog:
/people/michal.krawczyk2/blog/2005/09/01/xi-idoc-adapter--edidc40--demystified
it may answer some of your questions:)
Regards,
michal -
PI: File to IDOC port is empty in R/3 system
Hi,
We send an IDOC from PI. We can see the IDOC in R/3 (WE20) but the "port" is missing under "recipient infromation", there is no character in there. The other fields are all set. Where we have to set our port? In the communication channel is nothing to set.
Thanks
Ronny
Edited by: Ronny Pol on Feb 12, 2010 4:22 PMNo, we are not populating control record data in PI. We deactivated these fields...
Then I guess its unable to pick all the information(regarding sender/receiver port) from standard configuration.
Check the configuration once again that you have done(Abhijit's post above states the steps).
or
If you have time try the approach to populate EDIDC40 node in mapping and checking the option(Apply control record data from payload) in receiver IDOC channel.
Regards
Soumen...
Maybe you are looking for
-
How to keep transaction control in a wizard of more than one page
How do I control a transaction across multiple pages with multiple row DML? I have a complicated business process. I want to build a wizard in my application. For example, to apply for a loan from a bank. A sequence of pages to take the user through
-
Standard driver program for sale order
i am working with sale order confirmation,(smartforms) is there any pre defined driver program for this.Not RVador01/ and i need to display the output in the form of a print out or PDF for sending the mail. So please give me the logic for this.
-
Address Book problem - mail list won't expand or send
I'm using Mail on my iMAc. I've added a new mail list to my address book. When I use it in the to: , cc: , or bcc: it won't work. It won't even expand (right click the icon in the to: field and click Expand Group. It just clears the to: field. Wha
-
Does anyone know if Adobe is ever going to fix the time incrementing bug on Photoshop Elements 9 Organiser for Mac. If a file is edited, and the file was created before Daylight saving time and you are now on DST, the time is incremented forward by o
-
Import times vary-explain this to me please
Why is it that when I'm importing a CD to iTunes (this is with either a new CD or an old CD) the import times vary so drastically?