SAP B1 - Позиция компонента не может быть фантомной ошибкой

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

Свойства моих предметов:

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

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

Код товара: "M3", товарно-материальные запасы, позиция продажи и покупки, метод планирования: ППМ - покупка

И дерево продуктов 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); }
    }

0 ответов

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

Другие вопросы по тегам