Skip to Content
0

Verkaufsauftrag erstellen mit konfigurierbarem Material über JCO

Apr 01 at 09:04 AM

26

avatar image
Former Member

Guten Tag zusammen,

unsere Aufgabe ist es, über die BAPI "CreateFromDat2" einen Verkaufsauftrag per JCO mit konfigurierbarem Material zu erstellen.

Bisher funktioniert nur, die Erstellung eines Verkaufsauftrages, jedoch werden nicht die Materialmerkmale mit übergeben.

Wir benutzen die folgenden Tabellen für die Materialmerkmals Übergabe:

  • Order_CFGS_Value
  • Order_CFGS_REF
  • Order_CFGS_INST

Wenn wir uns die drei oben genannten Tabellen ausgeben lassen, dann befinden sich auch die gewünschten Werte in den Tabellen, jedoch werden sie unserer Meinung nicht an SAP übergeben.

package ImportArtikelMerkmale;

import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;
import java.util.concurrent.CountDownLatch;

import com.sap.conn.jco.AbapException;
import com.sap.conn.jco.JCo;
import com.sap.conn.jco.JCoContext;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.JCoField;
import com.sap.conn.jco.JCoFieldIterator;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoFunctionTemplate;
import com.sap.conn.jco.JCoParameterList;
import com.sap.conn.jco.JCoStructure;
import com.sap.conn.jco.JCoTable;
import com.sap.conn.jco.ext.DestinationDataProvider;
//import com.sap.mw.jco.JCO;
//import com.sap.mw.jco.JCO;


public class SalesOrder_create_Jco3_MitEinteilung_S
{
    static String ABAP_AS = "ABAP_AS_WITHOUT_POOL";   
    static JCoDestination destination;
    static JCoFunction function;
  //Deklarationen
    //JCoClient mConnection;
    /*JCoRepository myRepository;
    IFunctionTemplate ft;
    IFunctionTemplate ftc;
    IFunctionTemplate ftan;*/
    
    static JCoFunction function_commit;
    JCoFunction function_auftrag_anzeigen;
    JCoTable table;
    JCoStructure structure;
    static JCoStructure importAuftragAn;
    JCoParameterList ipl;
    JCoTable order_partners; 
    JCoTable order_items;
    //wo tpl1 Hilfe1
    static JCoTable tpl1; // für Order Partners Tabelle
    static JCoTable tpl2; // für Order Items Tabelle
    static JCoTable tpl3; // für Orders Schedule In Tabelle
    static JCoTable tpl4; // für Marterial Merkmals Tabelle
    static JCoTable tpl5;
    static JCoTable tpl6;
    int check = 0;  
    private String tabelle;
    private String struktur;
    private String strukturmat;
    private String tabelleAnlegen;
    //AuftragAnzeigen gui1 = AuftragAnzeigen.getInstance();
    private String eing;
    //KundeAnzeigen gui2 = KundeAnzeigen.getInstance();
    private String eing2;
    //MaterialAnzeigen gui3 = MaterialAnzeigen.getInstance();
    private String eing3;
    //AuftragAnlegen gui4 = AuftragAnlegen.getInstance();

    static
    {
        Properties connectProperties = new Properties();
        connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "/H/saprouter.hcc.in.tum.de/S/3297/H/i28lp1");
        connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR,  "28");
        connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "915");
        connectProperties.setProperty(DestinationDataProvider.JCO_USER,   "gbi-05");
        connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "07031997");
        connectProperties.setProperty(DestinationDataProvider.JCO_LANG,   "de");
        //createDataFile(ABAP_AS, "jcoDestination", connectProperties);
        
        connectProperties.clear();
        
    }

    public static void connect() throws JCoException
    {
        JCoDestination destination = JCoDestinationManager.getDestination(ABAP_AS);
        /*System.out.println("Attributes:");
        System.out.println(destination.getAttributes());
        System.out.println();*/
    }
    
   
    public static void createFunctionX(String name) throws JCoException{
        destination = JCoDestinationManager.getDestination("ABAP_AS_WITHOUT_POOL");
        function = destination.getRepository().getFunction(name);
        if(function == null)
        throw new RuntimeException("Kein BAPI gefunden!!");
        }
        
    public static void createFunction(String name) throws JCoException{
      
      destination = JCoDestinationManager.getDestination("ABAP_AS_WITHOUT_POOL");
      try
    {
      function = destination.getRepository().getFunction(name);
    }
    catch (JCoException e)
    {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
        
      if(function == null)
        throw new RuntimeException("Kein BAPI gefunden!!");
        
        
    if(name.equalsIgnoreCase("BAPI_CUSTOMER_GETDETAIL"))
          {   
            
            
          }
          
          else if(name.equalsIgnoreCase("BAPI_MATERIAL_GET_DETAIL"))
            {
              
             
            }
            
            else if(name.equalsIgnoreCase("BAPI_SALESORDER_GETLIST"))
            {
                
              function.getImportParameterList().setValue("CUSTOMER_NUMBER", "0000001000");
            }
             else if(name.equalsIgnoreCase("BAPI_SALESORDER_CREATEFROMDAT2"))
              {
              System.out.println(function.getName());
                JCoContext.begin(destination); 
                importAuftragAn = function.getImportParameterList().getStructure("ORDER_HEADER_IN");
                fuellenImportParameter();
                tpl1 = function.getTableParameterList().getTable("ORDER_PARTNERS");
                tpl1.appendRow(); 
                tpl1.setValue( "PARTN_ROLE", "AG");
                tpl1.setValue("PARTN_NUMB", "0000001000");
                tpl2 = function.getTableParameterList().getTable("ORDER_ITEMS_IN");                
                tpl2.appendRow(); 
                //tpl2.setValue("ITM_NUMBER", "000001");
                tpl2.setValue("MATERIAL", "GTS-KMAT-01");
                tpl2.setValue("TARGET_QTY", "1.000");
                tpl2.setValue("TARGET_QU", "ST");
                tpl2.setValue("PLANT", "1000");
                tpl2.setValue("STORE_LOC", "0001"); 
                tpl2.setValue("PO_ITM_NO", "11");
                tpl3 = function.getTableParameterList().getTable("ORDER_SCHEDULES_IN");
                tpl3.appendRow();
                tpl3.setValue("REQ_QTY", "1");
                System.out.println("TPL2==ORDER_ITEMS_IN "+tpl2);
                
                
                //tpl6 
                tpl6= function.getTableParameterList().getTable("ORDER_CFGS_INST");
                tpl6.appendRow();
                tpl6.setValue("CONFIG_ID", "35");
                tpl6.setValue("INST_ID", "1");
                tpl6.setValue("OBJ_TYPE", "KMAT");
                tpl6.setValue("CLASS_TYPE", "300");
                tpl6.setValue("OBJ_TXT", "GTS-KMAT-01");
                System.out.println("TPL6==ORDER_CFGS_INST"+tpl6);
                
                //eigene Arbeit ab hier
                //ab hier Eingabe und Verarbeitung der Merkmale
                //neue Tabelle erzeug
                tpl5= function.getTableParameterList().getTable("ORDER_CFGS_REF");
                tpl5.appendRow();              
                tpl5.setValue("POSEX","000000");
                tpl5.setValue("CONFIG_ID", "35");
                tpl5.setValue("ROOT_ID", "1");
                System.out.println("TPL5==ORDER_CFGS_REF"+tpl5);
                
           
                //tpl4
                tpl4 = function.getTableParameterList().getTable("ORDER_CFGS_VALUE");
                tpl4.appendRow();


                //Zuweisung von Merkmalswerten
                tpl4.setValue("CONFIG_ID", "35");
                tpl4.setValue("INST_ID", "1");
                tpl4.setValue("CHARC","GEHAUESE");
                tpl4.setValue("CHARC_TXT","Gehäuse");
                tpl4.setValue("VALUE","01");
                tpl4.setValue("VALUE_TXT","Metall");
                tpl4.appendRow();

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

0 Answers