C RFCSDK - How do i receive IDOCs?

Hello everyone.
I am currently programming against the SAP RFCSDK. I have code that makes my C program act as a RFC Server. Basically, what I'm doing is,
char functionName[30];
handle = RfcAccept(argv);
while (true)
  RfcGetName(handle, (char*)functionName);
  //depending on which function was called, call the
  //corresponding handler, which will make calls to
  //RfcGetData() and RfcSendData();
Now, when I began programming this, I was under the impression that the same code could be used for receiving an IDOC. However, I find this is not so. My SAP Consultant has configured my system, such that when I go to BD10, I can send an IDOC to a destination. I tried using the code above, but I see that, when an IDOC is sent, The RfcGetName() function call (which usually blocks until a function is called) returns, but the "functionName" char[30] is NULL.
I was hoping someone here could help me as to which function in the C RFCSDK do I need to use to receive any IDOC from SAP, provided it is sent to a particular destination which my C client has registered with.
Thanks a lot for taking the time to answer my question.
Regards,
Mustansir

Typically, once you have setup your machine to recieve a fax, you should be able to recieve it.
Could you be share more on what is the problem you are facing and which machine are you referring to?
I work for HP.

Similar Messages

  • Configuration Of Receiver Idoc Adapter

    Hi Experts,
        for an interface,I need to desighn a receiver idoc adapter.Plese guide Me
        regarding following matters:
    1.  how to configure receiver idoc adapter ?
    2.  how to get the control record for the receiving idoc?
    3.  what are the configuration we have to make?
    4. receiving idoc's data i want to update in my SAP database,How to achieve that?(Any program I have to write?what i need to mention in there?)
    Eagerly looking for valuable suggestions.
    Regards,
    Rasmiraj
    Edited by: rasmiraj tripathy on Aug 29, 2011 1:32 PM

    Hi RashmiRaj,
    Configuration Scenario
    1. Create the RFC Destination in SM59.
    2.Create Port in IDX1.
    3.Create Logical System in BD54
    4.Create A Scenario
    5. Select a Business System in Service with out Party
    6.Create a Receiver Communication Channel.
    7. Create a new Business Service
    8. Create a new Communication Channel
    9. Mention the logical Name in the Service->Adapter Specific Parameters of both the File Sender Service as well as the business system.
    10. create sender agreement
    11. Create Receiver Determination
    12. Create Interface Determination
    13. Create Receiver Agreement
    Also check the link [File to IDOC|http://www.****************/Tutorials/XI/FileToIDoc/FiletoIDocScenario.htm]
    and http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/cdded790-0201-0010-6db8-beb9bb2b2660?quicklink=index&overridelayout=true
    Thanks and Regards,
    Naveen
    Edited by: chichilin on Aug 29, 2011 5:40 PM

  • Configuration Of Receiver Idoc AdapterRe

    Hi Experts,
        for a interface,I need to desighn a receiver idoc adapter.Plese guide Me.
    1.  how top configure receiver idoc adapter ?
    2.  how to get the control record for the receiving idoc?
    3.  what are the configuration we have to make?
    4. receiving idoc's data i want to update in my SAP database,How to achieve that?(Any program I have to write??)
    Eagerly looking for valuable suggestions.
    Regards,
    Rasmiraj

    Hi,
    please go through this blog, i hope you will get all answers
    http://www.****************/Tutorials/XI/FileToIDoc/FiletoIDocScenario.htm
    regards,
    ganesh.

  • Send/receive IDOCs to SOLMAN system using AS2 protocol!

    Hi All,
    I want to send/receive IDOC file to/from web based SOLMAN system. Currently I'm using FTP server to send/receive IDOC file.
    As of now the current process is to send the IDOCs from ECC to FTP server and from FTP to third party and vice-versa. But due to some constraints, I'm bound to use web based SOLMAN system. Please, can you let me know how to send/receive IDOC files to SOLMAN. Is there standrad FM/method to connect to SOLMAN from ECC as in case of FTP we have FM 'FTP_CONNECT'. Heard that same functionality in case of SOLMAN can be achieved  through AS2 protocol.
    Kindly help.
    Thanks.
    Regards,
    Mukesh

    Hello 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

  • How to process the Received Idoc in SAP R/3 ? What to be done ?

    Hi All
    I am working for file to Idoc scenario.....
    Idoc received into SAP R/3 but how to process the Idoc data ?
    Such it will store in SAP R/3 DB.....
    Clearly
    How to Process the received idoc data into SAP R/3 ? (this is for inbound idoc)
    I hope any one can help me on the processing steps ?
    Waiting for valuable inputs form experts
    Regards
    Rakesh

    rakesh
    chec <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/cdded790-0201-0010-6db8-beb9bb2b2660">Sample IDoc</a>
    normally, based on the idoc types it will get processed. if it is an idoc with master record it will create appropriate master records or if it based for a transaction it will create one.
    <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d19fe210-0d01-0010-4094-a6fba344e098">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d19fe210-0d01-0010-4094-a6fba344e098</a>

  • How to Trigger an IDOC from SAP R/3 to two systems at a time

    Hi experts,
    Can any one please tell me How to Trigger an IDOC from SAP R/3 to two XI systems at a time.
    My current production R/3 system sends a DELVRY03 IDOC to Production XI system ( Name : XIP) .
    I would like to route the same IDOC from production R/3 system to my Quality XI System ( Name XIQ) .
    Problem is production R/3 system triggers an IDOC once. We need to write a logic to route the same to two different systems
    Can any one tell me how can we do that ?
    Regards
    Ram.

    Hello Ram,
    Do you have connectivity between your production & XIQ?
    What does "connectivity" mean?
    1. RFC destination is maintained.
    2. Port defined for the RFC destination.
    If no, create these. (Search in SDN for details).
    If yes, proceed:
    1. Define the logical system for XIQ.(BD54)
    2. Define the same as your partner profile. (WE20). Add the message type SYNCH with the port for XIQ.(This is imp)
    3. Create a distribution model view with sender as "your production" & receiver as XIQ.
    3.1. Add the messages which you want to distribute.
    3.2 Generate Partner profiles.
    No coding is reqd. for this.
    BR,
    Suhas

  • SP14 Multi-mapping - error in receiver idoc adapter

    Hi,
    I have a scenario where a business service should send some XML to SAP CRM. I get the file via a sender JMS adapter and try to post it to CRM via a receiver IDOC adapter.
    I have created a multimapping (1:N - 1 XML file to many Idocs) as should in the repository.
    In the configuration under Interface Determination, I have chosen 'RB_SPLIT' and selected the interface multimapping.
    It should be pointed out, that when testing both interface and message mapping i get no error. All idocs seem to be created as they should.
    When testing the setup 'real life' the message fails. The error message in the monitor says:
    - <!--  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_WRONG_INTF</SAP:Code>
      <SAP:P1>InterfaceCollection</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Unable to interpret IDoc interface InterfaceCollection</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Notice that the above error is when trying to send only 1 record, which in turn then should result in only 1 idoc.
    If trying to send multiple XML records, i get the following error:
    - <!--  Technical Routing
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="OUTBINDING">MMF_ENGINETYPE</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>A system error occurred in the outbound binding</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    In the monitor in the payload of 'Request message mapping' I see as many Maindocument, Submaindocument pairs as should be Idocs.
    Now i really don't know how to interpret the error messages in both cases, so I'm a little lost here...
    It should be pointed out that the idoc being used everywhere in this scenario, has not been modified - from all places it is being used (and only exists) in the 'Imported objects | Idocs' place.
    Also the Idoc is also being used as Inbound interface - so no mistakes here either.
    I really hope someone can help me here, as I'm otherwise pretty stuck in this case.
    Best regards,
    Daniel

    Hi Daniel,
    I have exactly the same type of scenario (under SPS14 and now also SPS15), sending an XML message over JMS to XI and trying a multi-mapping to many IDocs (actually a list of orders in XML is mapped to n ORDERS Idocs).
    I also face problems doing so, when I use the IDoc Adapter as outbound in the Receiver Agreement. I receive the following error:
    <i>CO_TXT_MMF_ENGINETYPE
    Messages in multi message format can be sent to one adapter engine only</i>
    However, I tested the same scenario by just changing the Receiver Agreement to a File Communication Channel and - surprise, surprise - it works. One file per IDoc is created.
    Of course, this is not what we want to accomplish, but when I checked this piece of documentation (sorry another link
    http://help.sap.com/saphelp_nw04/helpdata/en/42/ed364cf8593eebe10000000a1553f7/content.htm
    the IDoc adapter is not listed in the list of Adapters that are supported. Does that mean, that this feature is not supported for generating IDocs? Maybe that's a question for a SAP OSS Message?
    I hope that helped you a little further - if you find out more I'd be happy to learn about it.
    regards,
    Peter

  • Receiving IDocs from non-SAP system ...

    Hello guys,
    I have problem with implementing IDoc-XI-IDoc scenario. The sender system is a subsystem (non-SAP system) sending IDocs but XI is not able to receive them. I thing the IDoc metadata can not be found.
    Logical system name of the sender is IF6020DEV. I registered the system in SLD. In Integration Directory I imported the Bussines System IF6020DEV to my scenario and I created communication channel of type Sender IDoc Adapter in it.
    In IDX2 I created new port called IF6020DEV and I copied needed metadata into the port. But it doesn't work. Probably I don't do it right because I'm beginner with SAP XI.
    Could you give me any advice how to configure XI for receiving IDocs from non-SAP system?
    Thank you in advance!
    Regards
    Zbynek

    Thank you very much. The issue described in refered discussion is almost same issue what I'm solving. Unfortunetally the described solution dosn't work for me.
    The sender system still returns following error. I know you probably won't understand it because you don't know the subsystem, but maybe you could get some idea what is wrong.
    05/29/09 16:09:19.482 idoup2 Logon...
    05/29/09 16:09:19.482 idoup2 RfcOpenEx (TRACE=1 CLIENT=110 USER=xxxxxx LANG=D LCHECK=1 GWHOST=xxxxxx GWSERV=3361 ASHOST=xxxxxxx SYSNR=61 PASSWD=<password>)
    05/29/09 16:09:19.529 idoup2 Logon RfcOpenEx result=1
    05/29/09 16:09:19.607 idoup2 Call to (IDOC_INBOUND_ASYNCHRONOUS) failed (3)
    05/29/09 16:09:19.607 idoup2 Handle=1
    05/29/09 16:09:19.607 idoup2 key............:
    05/29/09 16:09:19.607 idoup2 status.........:
    05/29/09 16:09:19.607 idoup2 message........:IDoc-Adapter Eingang: Der Absenderport ist initial
    05/29/09 16:09:19.607 idoup2 internal status:
    05/29/09 16:09:19.607 idoup2 idoc_upload failed with rc=(3), try(2)
    05/29/09 16:09:20.607 idoup2 key............:IDoc-Adapter Eingang: Der Absend
    05/29/09 16:09:20.607 idoup2 status.........:EXCEPTION SYSTEM_FAILURE RAISED
    05/29/09 16:09:20.607 idoup2 message........:IDoc-Adapter Eingang: Der Absenderport ist initial
    05/29/09 16:09:20.607 idoup2 internal status:
    05/29/09 16:09:20.607 idoup2 idoc_upload failed with rc=(18), try(1)
    05/29/09 16:09:21.607 idoup2 Logoff...

  • Adapter Module for receiver IDOC adapter?

    Hi,
    I have a scenario where i need to do some custom logging in the receiver adapters. For all receiver file adapters, i have written an adapter module which fulfills this custom requirement but how will i do this in the receiver IDOC adapter as its on the ABAP stack? I cannot write a java adapter module for this.
    Is there anyway by which i can write a ABAP adapter mosule and deploy it in the IDOC adapter? Or any other way to achive it. the scenario is such that i need to do the logging before the idoc is posted into R/3 system by the idoc adapter.
    Please advice.
    Regards,
    Yash

    Hi Chirag,
    Yes i have seen that the module tab is disabled for idoc adapter. I have a fin interface where i need to split a incoming file into an idoc and a file. For this purpose i need to log how many records are received by each adapter and the sum of the line items for audit perspose.
    any othr way to do it apart from doing it in message mapping. The req is to do in the adapter engine.

  • How to configure Sender IDOC adapter

    Hi could someone pls guide me on the steps that i need to take to configure IDOC sender adapter..
    Are the steps for Sender and Receiver IDOC adapter same other than the fact that sender idoc adapter doesn't need a sender communication channel.
    Regards,
    Ashish

    hi Goyal,
    Just check out this link.
    How to Configure IDOC
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d19fe210-0d01-0010-4094-a6fba344e098
    Regards
    Sachin

  • Idoc packaging for Receiver Idoc adapter in 7.11

    We are using PI 7.11. And, I have a File to Idoc scenario. I am trying to find an Idoc packaging option for Receiver Idoc adapter. Any suggestions on how to do configure thi scenario?
    Thanks
    abhinaya4321
    Edited by: abhinaya4321 on Dec 3, 2011 12:15 PM

    hi,
    We are using PI 7.11. And, I have a File to Idoc scenario. I am trying to find an Idoc packaging option for Receiver Idoc adapter. Any suggestions on how to do configure ?
    that is possible with message packaging concept it is suitable for you requirement
    go through below links:
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/10b54994-f569-2a10-ad8f-cf5c68a9447c.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/10b54994-f569-2a10-ad8f-cf5c68a9447c?QuickLink=index&overridelayout=true
    thanks,

  • Receiver IDoc Adapter - Outbound IDocs in IDX5 but stucked in SM58

    Hi Gurus,
    I have a Receiver IDoc issue with the above error.
    My message is successful in the IE pipeline (but with error on outbound side)
    I can even view the generated IDoc numbers for those messages in IDX5,   but when double-clicking on those IDX5 entries SM58 is called and there I see the error as follows:
    Caller:  PIAFUSER
    FM:  IDOC_INBOUND_ASYNCHRONOUS
    Status Text: No Authorization to send IDocs with Message Type 0
    The weird thing is why is the caller showing as PIAFUSER, when my RFC destination is using a custom RFC user id.
    Shouldn't it be that the Caller be my custom RFC user id since this is the user used by the RFC destination i specified in the receiver idoc comm channel?
    Would anyone of you know how to resolve this?
    I have already implemented Note 837595 for (a) my custom RFC user id in the target system (b) PIAFUSER and PIISUSER in my Integration Server;  and assigned SAP_XI_APPL_SERV_USER role to PIISUSER also as specified in  http://help.sap.com/saphelp_nwpi711/helpdata/en/d4/d12940cbf2195de10000000a1550b0/content.htm
    I am aware that IDoc should be sent to the receiving system by using the IDoc adapter and NOT by using the IDoc Interface (tRFC port)
    Thanks in advance

    Hi All,
    I resolved this on my own.
    The steps i specified in my 1st post (Note implementation & Role assignment) was not enough, we had to assign SAP_ALL & SAP_NEW to the rfc user.    The Note implementation & role assignment should have solved this problem, but strangely it was not enough.
    As for the question on why PIAFUSER is showing up as the caller and not the RFC user id used in the rfc destination used by the port, it's because the original caller is what gets recorded in SM58, in this case Receiver IDoc adapter on the AE so PIAFUSER,   and not the RFC user id.   you can verify this in table ARFCSSTATE
    Thanks to all answers

  • Monitoring receiver idoc communication channel

    Hi All
    I have an idoc to idoc scenario.
    I am unable to see my receiving idoc communication channel in communication channel monitoring of RWB. It is not available in the dropdown list.
    I want to have a look at the audit log to see if the idoc is delivered to the receiving system.
    How can i monitor receiver idoc communication channel?
    How can i ensure that the idoc is delivered to the receiving system?
    In sxmb_moni, status is checkered flag.
    Many Thanks
    Chandra Sekhar

    Hi,
    IDOC is on ABAP stack hence u can not monitor IDOC.
    For testing purpose
    1) GO to SXMB_MONI check the status of message.
    2) Go to R3 and enter Tcode WE02 and check the IDOC which is send from XI. enter the idoc name and see the status of IDOC it should be in green status if it is posted successful or else see the status record for checking the error message.
    chirag

  • How to import the IDOC into Seeburger BIC mapping designer

    Hi All,
    Can u please tell me how to import the IDOC into Seeburger BIC mapping desginer.
    I have scenario My scenario is SAP GTS 7.0.....>Seeburger BIS.....>Atlas customs system for Germany
    Idoc coming from SAP GTS to Seeburger BIS and then convert to EDIFACT send
    to Atlas systeam.
    Regards,
    Ramesh.

    Hi Ramesh
    BIC is a tool from Seeburger to transmit the XML data to EDI and EDI to XML.
    Seeburger mapping programs for transferring the XML data to EDI data and EDI data to XML data, but not for the structure changing, in the IR your mapping program is same.
    Receiver side you need AS2 Adapter for converting data to EDI target structure. we have many EDI versions are available, for converting the EDI to XML or vice versa AS2 gives some default mapping programs, xml to EDI or EDI to XML convertion done through this mapping programs.
    Seeburger AS adapter provider provides some mapping programs(for example EDI4010 version or other), if you are using the same EDI version(4010) then you can use that mapping programs, if the version is different then we can manually generate the Seeburger X2E and E2X mappings for the corresponding version and signal(850 or 810 or ..), for this seeburger provides the mapping designer tool (BIC), there we can develope the X2E and E2X mapping programs and configure this in the Seeburger work bench.
    Regards
    Ramesh

  • How to create an IDoc programmatically at Inbound side?

    Hi,
    How to create an IDoc programmatically at Inbound side?
    Assume that you have a file(material master details) which is enough to create master data.
    Regards,
    Thiyagu

    Read the documentation of this FM first:
    FU IDOC_INBOUND_ASYNCHRONOUS                                                                               
    K. tekst
                                                                                    IDoc inbound processing via tRFC                                                                               
    Functionality
                                                                                    This function module starts inbound processing in the case of port type    
        "tRFC". The function module is a successor to INBOUND_IDOC_PROCESS,        
        which processes IDocs in the Release 4.0 record types. If you are          
        processing IDocs in Release 3.X record types, the function module          
        INBOUND_IDOC_PROCESS must still be called.                                                                               
    The function module checks the ID 'EDI_MES' in authorization object        
        B_ALE_RECV against the received message type.                                                                               
    The IDocs are saved by the function module IDOC_INBOUND_WRITE_TO_DB (a     
        COMMIT for all IDocs) and then transferred directly to the application     
        by the dispatcher module IDOC_START_INBOUND.                                                                               
    Parameter
                                                                                    IDOC_CONTROL_REC_40                                                        
        IDOC_DATA_REC_40                                                                               
    Exceptions
                                                                                    Functiegroep                                                                               
    Edited by: Micky Oestreich on Jun 11, 2009 12:52 PM

Maybe you are looking for