How to create and send Idocs to SAP using SAP .Net Connector 3

后端 未结 1 1632
一生所求
一生所求 2020-12-11 18:39

I want to create and send idocs to SAP using the SAP. Net Connector 3.x.

And I have a configured RFC Destination in my application:

 _rfcDestination          


        
相关标签:
1条回答
  • 2020-12-11 19:21

    One way to submit idocs to the SAP system using NCo is function module IDOC_INBOUND_ASYNCHRONOUS. The function module has several table parameters containing your idoc data. Table IDOC_CONTROL_REC_40 contains the control record, IDOC_DATA_REC_40 contains the idoc data segments.

    IDOC_DATA_REC_40 contains a field called SDATA. That field contains the idoc segment data as a single concatenated string with fixed field lengths.

    var fnc = destination.Repository.CreateFunction("IDOC_INBOUND_ASYNCHRONOUS");
    var controlTable = fnc.GetTable("IDOC_CONTROL_REC_40");
    var dataTable = fnc.GetTable("IDOC_DATA_REC_40");
    
    // control segment
    controlTable.Append();
    controlTable.CurrentRow.SetValue("TABNAM", "EDI_DC40  ");
    ...
    
    
    // here you add the data segments
    dataTable.Append();
    dataTable.CurrentRow.SetValue(...);
    
    fnc.Invoke(destination);
    

    the construction of the idoc data for IDOC_DATA_REC_40-SDATA has to be done manually in your code - you need to know the field lengths, including digits for numerical fields. There may be a way to get that information from the SAP system and use it in your code, but i've never tried that.

    0 讨论(0)
提交回复
热议问题