Skip to Content
author's profile photo Former Member
Former Member

Goods Receipt PO - addition thru DI API

Dear All,

I am using DIAPI for developing an addOn. In that I am adding record into Goods Reciept PO using oPurchaseDeliveryNotes business object.

I am attaching my coding for your reference.,

=========================================================================

Dim oInvGenEntry As SAPbobsCOM.Documents

oInvGenEntry = vcmp.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseDeliveryNotes)

oInvGenEntry.CardCode = "V002"

oInvGenEntry.HandWritten = tNO

oInvGenEntry.DocDate = "19/02/2008"

oInvGenEntry.Lines.SerialNumbers.SystemSerialNumber = 111 oInvGenEntry.Lines.SerialNumbers.ManufacturerSerialNumber = 222 oInvGenEntry.Lines.SerialNumbers.InternalSerialNumber = 333

oInvGenEntry.Lines.SerialNumbers.BaseLineNumber = 0

oInvGenEntry.Lines.SerialNumbers.SetCurrentLine(i)

oInvGenEntry.Lines.SerialNumbers.Add()

oInvGenEntry.Lines.ItemCode = oItems.ItemCode

oInvGenEntry.Lines.ItemDescription = oItems.ItemName

oInvGenEntry.Lines.WarehouseCode = "01"

oInvGenEntry.Lines.Currency = CurrencyComboBox.SelectedItem

oInvGenEntry.Lines.Price = CDbl(PriceText.Text)

oInvGenEntry.Lines.Rate = 2

oInvGenEntry.Lines.ShipDate = Now

oInvGenEntry.Lines.Quantity = CDbl(QuantityText.Text)

oInvGenEntry.Lines.DiscountPercent = CDbl(DiscountText.Text)

oInvGenEntry.PaymentGroupCode = -1

oInvGenEntry.DocTotal = 1

RetVal = oInvGenEntry.Add()

If RetVal <> 0 Then

MsgBoxLabel.Text = ErrCode & " " & ErrMsg

end if

=========================================================================

When i am executing the above code i am getting error as below

[PDN1.WhsCode][line: 1] , 'P001 cannot be released from stock without a full selection of serial/batch no.'

I am able to add items without serial no. But I want a solution to add items with serial no.

Please help me to resolve this issue.

thanks

regards,

Benjamin Rosary.B

Add comment
10|10000 characters needed characters exceeded

3 Answers

  • Best Answer
    Posted on Feb 19, 2008 at 09:37 AM

    benjamin,

    when you have only one serial number don't add a empty line

    i recommend you to remove

    oInvGenEntry.Lines.SerialNumbers.Add()

    which adds a new data line

    regards

    David

    Add comment
    10|10000 characters needed characters exceeded

    • i meant you have two possibilites for an item:

      an item can be a serial item or a batch item

      oDoc.Lines.SerialNumbers.SetCurrentLine

      oDoc.Lines.SerialNumbers.SystemSerialNumber = "x"

      and

      oDoc.Lines.BatchNumbers.SetCurrentLine

      oDoc.Lines.BatchNumbers.BatchNumber = "y"

      anyway - when you testet both i have no more idea

      regards

      David

  • author's profile photo Former Member
    Former Member
    Posted on May 07, 2011 at 05:36 AM

    Hi BENJAMIN ROSARY

    Have you got the solution of the error you are getting. If yes , please help me. I am getting the Same error on GRPO addition thru DI API

    Add comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Nov 18, 2013 at 09:24 PM

    I am presuming your SAPB1's connections is correctly. This C# sample works for me. In this case "P00128" and "ART0334" are CardCode, ItemCode respectively in my company;

    ------------------------------------------

    Console.WriteLine("Connection established, the company is: " + oCompany.CompanyName);

    SAPbobsCOM.Documents documents = (SAPbobsCOM.Documents)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oPurchaseDeliveryNotes);

    documents.CardCode = "P00128";

    documents.HandWritten = SAPbobsCOM.BoYesNoEnum.tNO;

    documents.DocDate = DateTime.Today;

    documents.DocDueDate = DateTime.Today;

    documents.Lines.ItemCode = "ART0334";

    documents.Lines.ItemDescription = "Art";

    documents.Lines.WarehouseCode = "01";

    documents.Lines.Currency = "USD";

    documents.Lines.Price = 10.0;

    documents.Lines.ShipDate = DateTime.Today;

    documents.Lines.Quantity = 1.0;

    documents.Lines.DiscountPercent = 0.0;

    documents.Lines.BatchNumbers.Quantity = 1;

    documents.Lines.BatchNumbers.ManufacturerSerialNumber = "SerialNumber";

    documents.Lines.BatchNumbers.InternalSerialNumber = "SerialNumber";

    documents.Lines.BatchNumbers.BatchNumber = "SerialNumber";

    documents.Lines.BatchNumbers.SetCurrentLine(0);

    documents.Lines.BatchNumbers.Add();

    int resp=documents.Add();

    if(resp != 0)

    {

    Console.WriteLine("ErrorCode:" + oCompany.GetLastErrorCode());

    Console.WriteLine("Description:" + oCompany.GetLastErrorDescription());

    }

    oCompany.Disconnect();

    Add comment
    10|10000 characters needed characters exceeded