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.

  • IDOC-Xi-IDOC: CRM - XI -R/3 (No service for system SAPOCC, client ** in ID)

    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
    Naina

    Error 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 ,
    SA

    Hi 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

  • Logical system name in SLD for the R3 buss. system is not open for input.??

    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 Ugur

    There 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
    Stefan

    Hi 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 PM

    Hi,
    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.Jain

    hi,
    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**

  • Parser error in ABAP mapping

    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

  • File Service to IDOC Scenario

    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
    Sri

    Hi 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

  • Message mapping changes

    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 regards

    hi 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 PM

    No, 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

  • Photoshop Elements 9 for Mac

    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?