ma

XML ErrorList:(15111) - Reçete satırı ile malzeme arasında birim seti / birim uyumsuzluğu var.

  Tiger/Logo Objects 2.65

merhaba,

mevcut reçete içerisine obje ile satır eklemek istediğimde aşağıdaki hatayı alıyorum.

uyumsuzluk yok aslında ancak neden bu hatayı veriyor anlayamadım.


acil yardımlarınızı rica ediyorum.


XML ErrorList:(15111) - Reçete satırı ile malzeme arasında birim seti / birim uyumsuzluğu var.


obje lobject reçete 15111


Kişi bilgileri gizlidir. Logo çalışanları görebilir.
Onaylanmış Cevap

Merhaba,


Yaşanan durumu gerçekleyebilmek adına, kendi test ortamım üzerinde birkaç örnek yaptım.
Bir reçeteye READ yöntemi ile eriştim. Ardından ilgili reçeteye bir satır ekleme işlemini gerçekleştirdim. Ben, ilk yaptığım örnekte sıkıntısız olarak bu işlemi gerçekleştirebildim. Fakat sizin aldığınız hatanın hangi şartlarda alınabileceğini de gerçeklemek istediğim için, aktarım kodum üzerinde birtakım değişiklikler yaptım.

Logo Objects ya da TIGER üzerinden XML Veri Aktarımı ile, reçeteye satırı eklerken birim seti ve birim kodu atamasını doğru bir şekilde yapmanız gerekiyor.

Örneğin; "AGIRLIK" birim setinin altında, "LITRE" diye bir birim olmadığı için, uygulama bu istisnai durumu yakalayıp, sizin gördüğünüz mesajı almamı sağladı.

Veyahut, herhangi bir birim seti ataması yapmadan aktarımı gerçekleştiriyor olabilirsiniz. Bu defa değer ataması yapmadığımız birim seti alanına, varsayılan değer olarak, boş bir değer(string a="" gibi) atandığı için yine aynı uyarıyı gönderiyor.

Aşağıdaki kod bloğu ile aktarımı gerçekleştirdiğim de, 


boomLines[boomLines.Count - 1].FieldByName("UNIT_SET_CODE").Value = "AGIRLIK";
boomLines[boomLines.Count - 1].FieldByName("UNIT_CODE").Value = "KG";


yukarıdaki iki satırın atamasını doğru bir şekilde yapınca sorun olmuyor.


Fakat "AGIRLIK" atamasını yaptığım satırı, aşağıda sizinle paylaştığım aktarım kod bloğundaki gibi yorum satırı yaparsam, yahut "KG" birim ataması yaptığım satırda "AGIRLIK" birim setine bağlı olmayan bir birim ataması("LITRE" gibi örneğin) yaparsam eğer, bu istisnai durum mesajı ekrana geliyor. 


 int boMasterRef = 1;
 UnityObjects.Data bom = Global.UnityApp.NewDataObject(UnityObjects.DataObjectType.doBOM);
 if (bom.Read(boMasterRef))
 {
 MessageBox.Show(bom.DataFields.FieldByName("CODE").Value.ToString());
 UnityObjects.Lines boomLines = bom.DataFields.FieldByName("LINES").Lines;
 boomLines.AppendLine();
 boomLines[boomLines.Count - 1].FieldByName("LINE_TYPE").Value = 0;
 boomLines[boomLines.Count - 1].FieldByName("LINE_NO").Value = 4;
 boomLines[boomLines.Count - 1].FieldByName("UINFO1").Value = 1;
 boomLines[boomLines.Count - 1].FieldByName("UINFO2").Value = 1;
 boomLines[boomLines.Count - 1].FieldByName("AMOUNT").Value = 15;
 boomLines[boomLines.Count - 1].FieldByName("SCALABLE").Value = 1;
 boomLines[boomLines.Count - 1].FieldByName("INVEN_NO").Value = -1;
 boomLines[boomLines.Count - 1].FieldByName("ENGINEERING").Value = 1;
 boomLines[boomLines.Count - 1].FieldByName("PRODUCTION").Value = 1;
 boomLines[boomLines.Count - 1].FieldByName("COST").Value = 1;
 boomLines[boomLines.Count - 1].FieldByName("FORMULA").Value = "P1 * 10 / 2";
 boomLines[boomLines.Count - 1].FieldByName("ITEM_CODE").Value = "HM.002";
 //boomLines[boomLines.Count - 1].FieldByName("UNIT_SET_CODE").Value = "AGIRLIK";
 boomLines[boomLines.Count - 1].FieldByName("UNIT_CODE").Value = "KG";
 boomLines[boomLines.Count - 1].FieldByName("BOM_TYPE").Value = 1;
 boomLines[boomLines.Count - 1].FieldByName("OP_CODE").Value = "OPERASYON";
 boomLines[boomLines.Count - 1].FieldByName("OP_NAME").Value = "OPERASYON 1";
 boomLines[boomLines.Count - 1].FieldByName("DEF_COST_TYPE").Value = 5;

 if (bom.Post() == true)
 {
 MessageBox.Show("POST OK !");
 }
 else
 {
 if (bom.ErrorCode != 0)
 {
 MessageBox.Show("DBError(" + bom.ErrorCode.ToString() + ")-" + bom.ErrorDesc + bom.DBErrorDesc);
 }
 else if (bom.ValidateErrors.Count > 0)
 {
 string result = "XML ErrorList:";
 for (int i = 0; i < bom.ValidateErrors.Count; i++)
 {
 result += "(" + bom.ValidateErrors[i].ID.ToString() + ") - " + bom.ValidateErrors[i].Error;
 }
 MessageBox.Show(result);
 }
 }
 }


İyi çalışmalar, kolay gelsin.


10/01/21 17:45

Cevap vermek için giriş yapmanız gerekmektedir.