Вставить данные в сервер SAP с помощью оконного приложения - PullRequest
0 голосов
/ 15 июля 2011

По сути, мне нужно заполнить текстовые поля приложения на основе SAP с помощью моего приложения на основе окон (.NET Framework).мое приложение будет извлекать данные из базы данных, и мне нужно будет заполнить их непосредственно в приложении на базе SAP или на сервере SAP.

Надеясь на положительные и быстрые ответы.

это также возможно с SAPСоединитель .NET так,

Может ли любой пример иметь образец того, как вставить данные из приложения .net в SAP с помощью соединителя .Net.

1 Ответ

0 голосов
/ 21 ноября 2011

Надеюсь, этот код поможет вам. здесь я передаю значения в BAPI, который записывает данные в таблицы.

    string strBapi = strBAPI;

    DataTable tblShipTo = null;

    DataTable myTable = new DataTable("tblTest");

    DataRow dr = myTable.NewRow();

    myTable.Columns.Add("Num1", typeof(int));
    myTable.Columns.Add("Num2", typeof(int));
    myTable.Columns.Add("Num3", typeof(int));

    dr["Num1"] = 1;
    dr["Num2"] = 2;
    dr["Num3"] = 3;

    myTable.Rows.Add(dr);

    dr = myTable.NewRow();

    dr["Num1"] = 5;
    dr["Num2"] = 6;
    dr["Num3"] = 7;

    myTable.Rows.Add(dr);

    int i = -1;
    DataColumn col;
    object obj = null;

    try
    {
        ConnectorFuntions cf = new ConnectorFuntions();
        IRfcFunction bapiTEST = _rfcDest.Repository.CreateFunction(strBapi);

        RfcStructureMetadata metaData  = _rfcDest.Repository.GetStructureMetadata("ZBAPI_A_STRU_ORDER_CLICK");
        IRfcStructure structImport = metaData.CreateStructure();

        IRfcTable tblInput = bapiTEST.GetTable("IMPORT");

        foreach (DataRow dr1 in myTable.Rows)
        {
            IRfcStructure myStructRow = metaData.CreateStructure();
            i++;
            foreach (DataColumn column in myTable.Columns)
            {
                obj = dr1[column];
                myStructRow.SetValue(column.ToString(), obj);

            }

            tblInput.Append(myStructRow);


        }



        RfcSessionManager.BeginContext(_rfcDest);
        bapiTEST.Invoke(_rfcDest);
...