Read Material BOM  This sample shows how to obtain the components of a material BOM using the function module CSAP_MAT_BOM_READ.
  Tip
 To change a material BOM use the function modules CSAP_MAT_BOM_OPEN, CSAP_MAT_BOM_MAINTAIN and CSAP_MAT_BOM_CLOSE. To create a new BOM use the function modules CSAP_MAT_BOM_ALLOC_CREATE and CSAP_MAT_BOM_CREATE.
   Call CSAP_MAT_BOM_READ  The following sample code retrieves the components of a material BOM:
 CSAP_MAT_BOM_READ using   System ; 
using   ERPConnect ; 
 
// Set your ERPConnect license 
LIC . SetLic ( "xxxx" ); 
 
using   var   connection   =   new   R3Connection ( 
     host :   "server.acme.org" , 
     systemNumber :   00 , 
     userName :   "user" , 
     password :   "passwd" , 
     language :   "EN" , 
     client :   "001" ) 
{ 
     Protocol   =   ClientProtocol . NWRFC , 
}; 
 
connection . Open (); 
 
//Create function 
RFCFunction   func   =   connection . CreateFunction ( "CSAP_MAT_BOM_READ" ); 
func . Exports [ "MATERIAL" ]. ParamValue   =   "100-100" ;   // Material 
func . Exports [ "PLANT" ]. ParamValue   =   "1000" ;   // Plant 
func . Exports [ "BOM_USAGE" ]. ParamValue   =   "1" ;   // Usage -> 1 = Production 
 
//Execute 
func . Execute (); 
 
// reading header 
if   ( func . Tables [ "T_STKO" ]. Rows . Count   >   0 ) 
{ 
     // print out BOM header 
     RFCStructure   header   =   func . Tables [ "T_STKO" ]. Rows [ 0 ]; 
     Console . WriteLine ( "Base Quantity: "   +   header [ "BASE_QUAN" ]. ToString () 
 
         +   " "   +   header [ "BASE_UNIT" ]. ToString ()   +   "\r\n" ); 
 
 
     Console . WriteLine ( "Items:\r\n" ); 
 
     // print out components, quantity, item text 
     foreach   ( RFCStructure   itemrow   in   func . Tables [ "T_STPO" ]. Rows ) 
     { 
         Console . WriteLine ( itemrow [ "COMPONENT" ]. ToString ()   +   " "   + 
             itemrow [ "COMP_QTY" ]. ToString ()   +   " "   + 
             itemrow [ "ITEM_TEXT1" ]. ToString ()); 
     } 
 
} 
else 
{ 
     Console . WriteLine ( "No BOM found" ); 
} 
 
Console . WriteLine ( "Ready" ); 
Console . ReadLine (); 
        Last update: January 2, 2024