SAP B1 - Позиция компонента не может быть фантомной ошибкой - PullRequest
0 голосов
/ 05 июня 2018

Я сделал дополнение для модуля ППМ SAP B1 и пытаюсь создать производственный заказ из рекомендации заказа.У меня есть ошибка «Элемент компонента не может быть фантомным элементом».

Свойства моих элементов:

ItemCode: «M1», Товарно-материальные запасы и Товар, Метод планирования: ППМ -Марка

ItemCode: "M2", это только позиция продажи, метод планирования: MRP - Марка

ItemCode: "M3", Инвентарь, позиция продажи и покупки, метод планирования: MRP - покупка

И дерево продуктов M1 -> M2 -> M3

В чем причина этой ошибки?Когда я пытаюсь создать производственный заказ M1 на стандартном MIP без моего аддона, он работает успешно.

Вот код, который добавляет производственный заказ:

public void createWOrderFor(int id,
                              string itemCode,
                              string itemName,
                              int qty,
                              int satisSip,
                              string cardCode,
                              string cardName,
                              string releaseDate)
    {
        DataTable dataTable2 = new DataTable();
        using (var connection = new SqlConnection("Server=" + server + ";Database=" + database + ";User Id=" + user + ";Password=" + pass + "; connection timeout=30;"))
        {
            connection.Open();
            var comm = new SqlCommand("select Code, Quantity from ITT1 where Father='" + itemCode + "'", connection);
            SqlDataReader dr = comm.ExecuteReader();
            if (dr.HasRows)
                dataTable2.Load(dr);
        }
        SAPbobsCOM.ProductionOrders BO_itemP;
        BO_itemP = (SAPbobsCOM.ProductionOrders)getCompany().GetBusinessObject(SAPbobsCOM.BoObjectTypes.oProductionOrders);
        SAPbobsCOM.ProductionOrders_Lines BO_item_lines = null;            
        BO_itemP.PostingDate = DateTime.Now;
        BO_itemP.DueDate = DateTime.Parse(releaseDate); 
        BO_itemP.ItemNo = itemCode;
        BO_itemP.PlannedQuantity = qty;
        BO_itemP.ProductionOrderType = SAPbobsCOM.BoProductionOrderTypeEnum.bopotSpecial;
        int count2 = 0;
        foreach (DataRow row2 in dataTable2.Rows)
        {
            BO_item_lines = BO_itemP.Lines;
            BO_itemP.Lines.ItemNo = row2["Code"].ToString();
            BO_itemP.Lines.PlannedQuantity = miktar * qty;
            BO_itemP.Lines.SetCurrentLine(count2);
            count2++;
            BO_itemP.Lines.BaseQuantity = miktar * qty;
            BO_itemP.Lines.Warehouse = "1100";
            BO_itemP.Lines.Add();
        }
        var retVal = BO_itemP.Add();
        String err = base.getCompany().GetLastErrorDescription();
        if (!err.Equals("")) { SAPbouiCOM.Framework.Application.SBO_Application.StatusBar.SetText("BO_item Hata: "+err, SAPbouiCOM.BoMessageTime.bmt_Long, SAPbouiCOM.BoStatusBarMessageType.smt_Error); }
    }

1 Ответ

0 голосов
/ 10 декабря 2018

Невозможно создать производственный заказ для компонента «Фантом».Ваш компонент «M2» помечен как товар, который будет устанавливать флаг «Фантом» на Master Item.Если вы измените свой код, чтобы пропустить фантомные элементы, он должен работать.

...