Updating documents - adding batch numbers to lines

Using the DI Server, we want to be able to update a document (such as a Goods Receipt PO) and create batch numbers for lines where the item on the line is set to batch on release only (hence we were able to create the document with no batch numbers on in the first place).
Currently, when we do this, no error comes back from the DI Server, but the batch numbers are not added.

Hi Jim,
Adding lot numbers to pick tickets would not be possible (out of the box)
Suda

Similar Messages

  • Batch Numbers in Invoice layouts

    Hi Guys,
    I am trying to use Crystal reports to bring in Batch Numbers for Line Items, I have the following Query but it is not quite working correctly and I cant work out how to ensure the Batch No it Shoes is correct and matches to those in the Right Click Batch Details on an AR Invoice. Can anyone point me in the right direction at all ?
    SELECT T0.[DocNum], T1.[ItemCode], T1.[Dscription], T2.[ItemCode], T2.[DistNumber], T2.[ExpDate] FROM OINV T0  INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry LEFT OUTER JOIN OBTN T2 ON T1.[ItemCode] = T2.[ItemCode] WHERE T0.[DocNum] ='227'
    Kind regards
    Sean Martin

    Hi Sean......
    Try this.....
    Select T0.DocNum, T1.ItemCode, T1.Dscription, T8.ItemCode, T8.DistNumber, T8.ExpDate,
    I1.BatchNum     
    FROM OINV T0  INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
    LEFT Join DLN1 T6 On T6.DocEntry=T1.BaseEntry and T6.LineNum=T1.BaseLine
    left outer join IBT1 I1 on T1.ItemCode=I1.ItemCode   and (T6.DocEntry=I1.BaseEntry and T6.ObjType=I1.BaseType)
    left outer join OBTN T8 on T8.ItemCode=I1.ItemCode and I1.BatchNum=T8.DistNumber
    Above Query will bring the data of batches in Invoice CR even though the batch is created at the time of delivery
    Hope this will help you..........
    Regards,
    Rahul

  • Adding a batch to a line item in an Order with B1WS

    Hi,
    I am trying to create code which can update a batch in a line item in an order.  The updating works great, if the batch is already attached to the line item.  However, I am unable to add a batch if one doesn't already exist.
    Can you please have a look at this code and let me know what is wrong?
    I've tried various things, though am still unable to get it to work.
    Thank you very much!
    Mike
    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using orderWebRef;
    using System.Text;
    public partial class _Default : System.Web.UI.Page
        protected void Page_Load(object sender, EventArgs e)
            // B1BATCH performs batch operations on SAP via DISERVER and B1WS
            // The inputs are:
            // o = Order Number (this is the DocEntry value, NOT the DocNum value)
            // b = Batch Number
            // q = Quantity
            // i = Item Code
            // p = Project
            // debug = 1 or true if you want to see output messages
            // For some security, we will encode some values at the client,
            // and verify them here for consistency.
            // The "Secret Formula" is these variables, which will be passed to the URL
            // 1 = Order Number * 2 (encoded at the client)
            // 2 = Batch Number * 2 (encoded at the client)
            // To decode, we do this:
            // Correct decoding if ((1 = (o/2)) AND (2 = (b/2))
            string o = "";
            string b = "";
            string q = "";
            string i = "";
            string p = "";
            string v1 = "";
            string v2 = "";
            int orderNumber = 0; // This is the DocEntry value, NOT the DocNum value
            int batchNumber = 0;
            int quantity = 0;
            int v1int = 0;
            int v2int = 0;
            bool debugMode = false;
            bool allVarsPresent = true;
            bool allVarsValid = true;
            try
                o = Request.QueryString["o"].ToString();
            catch
                allVarsPresent = false;
            try
                b = Request.QueryString["b"].ToString();
            catch
                allVarsPresent = false;
            try
                q = Request.QueryString["q"].ToString();
            catch
                allVarsPresent = false;
            try
                i = Request.QueryString["i"].ToString().ToUpper();
            catch
                allVarsPresent = false;
            try
                p = Request.QueryString["p"].ToString().ToUpper();
            catch
                allVarsPresent = false;
            try
                v1 = Request.QueryString["1"].ToString();
            catch
                allVarsPresent = false;
            try
                v2 = Request.QueryString["2"].ToString();
            catch
                allVarsPresent = false;
            try
                string debug = Request.QueryString["debug"].ToString();
                if ((debug == "1") || (debug.ToLower() == "true"))
                    debugMode = true;
            catch
                debugMode = false;
            if (!allVarsPresent)
                WriteDebugMessage(debugMode, "All required variables are not in the request.");
                return;
            else
                // All variables are present, now check that they are valid.
                // First, check the v1 and v2 variables are correct
                // Then check that the order exists
                // Then check that the batch exists and has the appropraite quantity available
                try
                    orderNumber = Convert.ToInt32(o);
                    batchNumber = Convert.ToInt32(b);
                    quantity = Convert.ToInt32(q);
                    v1int = Convert.ToInt32(v1);
                    v2int = Convert.ToInt32(v2);
                    if ((v1int / 2) != orderNumber)
                        allVarsValid = false;
                    if ((v2int / 2) != batchNumber)
                        allVarsValid = false;
                catch
                    WriteDebugMessage(debugMode, "Error in processing variables.");
                    return;
                if (!allVarsValid)
                    WriteDebugMessage(debugMode, "Error in validating checksum.");
                    return;
                // All variables are present and valid!
                WriteDebugMessage(debugMode, "All variables are present and valid.");
            try
                loginWebRef.LoginService ls = new loginWebRef.LoginService();
                string sessionID = ls.Login("DBSERVER", "DBNAME", loginWebRef.LoginDatabaseType.dst_MSSQL2005, true, "sa", "PASSWORD", "manager", "managerPass", loginWebRef.LoginLanguage.ln_English, true, "LICENSE:30000");
                WriteDebugMessage(debugMode, "<BR><BR>SessionId: " + sessionID + "<BR><BR>");
                orderWebRef.MsgHeader msgHeader = new orderWebRef.MsgHeader();
                msgHeader.SessionID = sessionID;
                msgHeader.ServiceName = MsgHeaderServiceName.OrdersService;
                msgHeader.ServiceNameSpecified = true;
                orderWebRef.OrdersService order = new OrdersService();
                order.MsgHeaderValue = msgHeader;
                DocumentParams param = new DocumentParams();
                param.DocEntry = orderNumber;
                param.DocEntrySpecified = true;
                orderWebRef.Document document = new orderWebRef.Document();
                document = order.GetByParams(param);
                StringBuilder orderSb = new StringBuilder();
                orderSb.Append("Order " + document.DocNum.ToString() + "<BR><BR>");
                foreach (DocumentDocumentLine docLine in document.DocumentLines)
                    if ((docLine.ProjectCode == p) && (docLine.ItemCode == i))
                        orderSb.Append("Line Num:      " + docLine.LineNum + "<BR>");
                        orderSb.Append("Item Code:     " + docLine.ItemCode + "<BR>");
                        orderSb.Append("Project Code:  " + docLine.ProjectCode + "<BR>");
                        orderSb.Append("Description:   " + docLine.ItemDescription + "<BR>");
                        // Find the batch if it exists and update the quantity
                        // Add the batch if it doesn't exist
                        bool batchExistsInLineItem = false;
                        int batchCount = 0;
                        foreach (DocumentDocumentLineBatchNumber batch in docLine.BatchNumbers)
                            batchCount++;
                            if (batch.BatchNumber == b)
                                batchExistsInLineItem = true;
                                orderSb.Append("<BR>");
                                orderSb.Append("+++++ Batch exists in line item.  Updating.<BR><BR>");
                                orderSb.Append("+++++ Batch Line:   " + batchCount.ToString() + "<BR>");
                                orderSb.Append("+++++ Batch Num:    " + batchNumber + "<BR>");
                                orderSb.Append("+++++ Quantity:     " + quantity + "<BR>");
                                batch.Quantity = quantity;
                        if (!batchExistsInLineItem)
                            docLine.BatchNumbers = new DocumentDocumentLineBatchNumber[1];
                            DocumentDocumentLineBatchNumber batch = new DocumentDocumentLineBatchNumber();
                            batch.BatchNumber = b;
                            batch.Quantity = quantity;
                            docLine.BatchNumbers[0] = batch;
                            orderSb.Append("<BR>");
                            orderSb.Append("+++++ Batch does not exist in line item.  Adding.<BR><BR>");
                            orderSb.Append("+++++ Batch Line:   " + batchCount.ToString() + "<BR>");
                            orderSb.Append("+++++ Batch Num:    " + batchNumber + "<BR>");
                            orderSb.Append("+++++ Quantity:     " + quantity + "<BR>");
                try
                    order.Update(document);
                catch (Exception ex)
                    WriteDebugMessage(debugMode, "SAP Exception:  " + ex.Message.ToString());
                    return;
                WriteDebugMessage(debugMode, orderSb.ToString());
            catch (Exception ex)
                WriteDebugMessage(debugMode, "Error in processing the request.  Exception:<BR><BR>" + ex.Message);
                return;
        private void WriteDebugMessage(bool debugMode, string exitMessage)
            if (debugMode)
                Response.Write(exitMessage);

    Hi Everyone,
    I found the answer, you can find the code here: [B1WS Batch Manipulations with Orders|http://paste-it.net/public/dbbcea0/]
    Cheers,
    Mike

  • When I click on a saved document or spreadsheet, I get this message You need a newer version of Numbers to open this document.  When I go Software update, there is no update for pages or numbers.  can't purchase or update?

    when I click on a saved document or spreadsheet, I get this message 'You need a newer version of Numbers to open this document'.  When I go Software update, there is no update for pages or numbers.  can't purchase or update?
    Trying re-purchasing.  won't let me.  says to check for updates?
    any suggestions

    It sounds to me as though you are attempting to open a Pages 09 document with the Pages 08 application. If you do have Pages 09 on your computer, it may be that for some reason an existing Pages 08 application is invoked accidentally.
    Jerry

  • Slow respon when update Document Numbering

    Hi Expert,
    We have 7 branch and 4 different type of sales document. and we change our document numbering every month.
    We have use SAP Business One for a year. So, we have large number of document numbering.
    when we update and add new row in document numbering, we get slow respon. It can about 30 minutes every update.
    how can we make it faster?
    *we use 8.82 PL:08 version.
    Regards,
    Triadi Bagus

    Hi Triadi,
    Try to update Document Numbering when no user are logged on data or Ask your users to not to post any transaction during the period when you are updating Document Numbering.
    This problem arise because when user are punching transactions on database as Internal Document No Changes every time a transaction is punched on Database.
    This May be the reason.
    Hope this help!!
    Regards,
    Sudhir

  • Keynote document saved in icloud not updating with data from Numbers? is icloud the problem

    keynote document saved in icloud not updating with data from Numbers? is icloud the problem.
    If both files are held locally on the computer it looks like there is no problem however if you try and do it though icloud (ie your docs are saved on icloud) you dont get the "source" oprion besides the graph etc. Is this a but or a broken function due to the new implementation of icloud.

    Hi sebnor31,
    This is Visual C# forum, but your question seems not related to Visual C# language itself. It most likely related to the bluetooth message transaction protocal or with the device itself.
    I'll move your question to [where is this forum for...] forum where the morderator may direct you to the correct forum.
    Thanks for your understanding.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • See batch numbers allocate in draft document

    Hi,
    I have doing a good exit and I have chosed batch numbers. I have doing a draft of this good exit. When I want to do a query about the draft I haven't table to see the batch numbers which are allocated. How I can link batch numbers with my draft?
    Thank you
    Séverine

    You can select batch numbers for a good deliveries (Right click/Batch Numbers or CTRL TAB on the quantity field) and then save this document as a draft.
    When you open this draft and again Right click/Batch Numbers on the quantity field, you can see the batch numbers previously selected.
    These batch numbers are not allocated (you can select them when you create another good issue), but there are saved somewhere, and linked to the draft.
    However I can't find in which table these batch numbers are saved (I checked OIBT, IBT1, OSRD).
    I think that the question is : where are these batch numbers saved?

  • Batch numbers needed 4 an update!

    hey guys..
    wanna update my database release 10.2.0.1.0 enterprise edition to 10.2.0.3 or higher (on windows xp)
    does anybody know the batch numbers/names needed to download from metalink? thanx

    Patchset 5337014 - 10.2.0.3 PATCH SET FOR ORACLE DATABASE SERVER.

  • Update Document line with a new Item Code...

    Hi.
    This is all done using the DI Server.
    I am updating a sales order with two lines - it looks like this:
    ItemCode____Qty
    651_________10
    00028________5
    I update line 2 so the sales order now looks like this to this:
    651_________10
    651__________8
    All I pass in is the two values 651 and 10 (and a taxcode etc)
    Now... if I take a look at the sales orders GL - before and after the update - It looks like this
    (before)
    ItemCode_____Qty______GL Account
    651___________10_____ _SYS00000000235
    00028__________5_____ _SYS00000000237
    (after)
    651___________10_____ _SYS00000000235
    651____________8_____ _SYS00000000237
    So it does not change the GL Account to fit the new Item... It looks like I need to find the GL Revenue Account for the new item myself. How do I find this?
    Method or SQL is more than welcome...
    Regards,
    Allan C. E. Rasmussen

    Hi Allan,
    your Stored Procedure is good for GLMethod = 'L' but if GLMethod of Item is 'W' or is 'C' your code is not good.
    Case is "W"
    SELECT RevenuesAc FROM OWHS Where WhsCode = @WhsCode
    Case is "C"
    SELECT OITB.RevenuesAc FROM OITM INNER JOIN OITB ON OITM.ItmsGrpCod = dbo.OITB.ItmsGrpCod Where OITM.ItemCode = @ItemCode
    Regards,
    Claudio

  • DIAPI posting Delivery Document with Serial Numbers SP1

    Release 2005A, SP1 PL4 seems to have broken code that worked with SP00.  When trying to create a Delivery Document that contains Serial Numbers, an error is generated: Error -1, General Error.  When adding a delievery document which does not contain serial numbers, the document adds successfully.
    The following code loops through a recordset to create documents, add expenses and add serial numbers when appropriate.  Is this a new 'feature' or can we make a coding change to eliminate this error?
    Sample code:
        Try
          oSalesOrder = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders)
          RecSet = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
          RecSet2 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
          RecSet3 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
          RecSet4 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
          RecSet5 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
          RecSet6 = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset)
          '-- Select Documents to process and loop through recordset
          lsSQL = "SELECT DocEntry FROM DeliveryTable WHERE ProcessResult IS NULL Group by DocEntry"
          RecSet.DoQuery(lsSQL)
          While Not RecSet.EoF
            oSalesOrder.GetByKey(RecSet.Fields.Item(0).Value)
            If bDocuments(piCompany).DelDraft = False Then
              oDelivery = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDeliveryNotes)
            Else
              oDelivery = oCompany(piCompany).GetBusinessObject(SAPbobsCOM.BoObjectTypes.oDrafts)
            End If
            oDelivery.CardCode = oSalesOrder.CardCode
            oDelivery.Comments = "Based On Sales Order " & oSalesOrder.DocNum & "."
            oDelivery.DocDate = Today
            oDelivery.ContactPersonCode = oSalesOrder.ContactPersonCode
            oDelivery.DocCurrency = oSalesOrder.DocCurrency
            oDelivery.DocDueDate = Today
            If bDocuments(piCompany).DelDraft = True Then
              oDelivery.DocObjectCode = SAPbobsCOM.BoObjectTypes.oDeliveryNotes
            End If
            '-- Handle Expenses for Document
            Dim ExpenseLoop As Integer
            Dim ExpenseCount As Integer = 0
            For ExpenseLoop = oSalesOrder.Expenses.Count - 1 To 0 Step -1
            ExpenseCount += 1
              '-- Create new Expense if needed
              If ExpenseCount > oDelivery.Expenses.Count Then
                oDelivery.Expenses.Add()
              End If
              oSalesOrder.Expenses.SetCurrentLine(ExpenseLoop)
              '-- Copy all non-readonly properties
              If oSalesOrder.Expenses.LineTotal > 0 Then
                oDelivery.Expenses.BaseDocEntry = oSalesOrder.Expenses.BaseDocEntry
                oDelivery.Expenses.BaseDocLine = oSalesOrder.Expenses.BaseDocLine
                oDelivery.Expenses.BaseDocType = oSalesOrder.Expenses.BaseDocType
                oDelivery.Expenses.DeductibleTaxSum = oSalesOrder.Expenses.DeductibleTaxSum
                oDelivery.Expenses.DistributionMethod = oSalesOrder.Expenses.DistributionMethod
                oDelivery.Expenses.ExpenseCode = oSalesOrder.Expenses.ExpenseCode
                oDelivery.Expenses.LineTotal = oSalesOrder.Expenses.LineTotal
                oDelivery.Expenses.Remarks = oSalesOrder.Expenses.Remarks
                oDelivery.Expenses.TaxCode = oSalesOrder.Expenses.TaxCode
                oDelivery.Expenses.VatGroup = oSalesOrder.Expenses.VatGroup
              End If
            Next ExpenseLoop
            Dim i As Integer = 0
            Dim liMinRef As Integer = -1
            For x = 0 To oSalesOrder.Lines.Count - 1
              lsSQL = "SELECT ISNULL(MIN(CAST(LineRef as int)),999999) as MinLineRef FROM DeliveryTable WHERE DocEntry = " & RecSet.Fields.Item(0).Value & " AND CAST(LineRef as int) > " & liMinRef
              RecSet5.DoQuery(lsSQL)
              If Not RecSet5.EoF Then
                '-- It's possible that the DeliveryTable has less records then the RDR1 table - if that's the case
                '-- we may be at the end, so set the liMinRef field to something out of range
                liMinRef = RecSet5.Fields.Item(0).Value
              End If
              '-- get line items for each document
              lsSQL = "Select * from DeliveryTable WHERE DocEntry = " & RecSet.Fields.Item(0).Value & " AND LineRef = " & x & " AND ProcessResult IS Null"
              RecSet2.DoQuery(lsSQL)
              RecSet2.MoveFirst()
              While Not RecSet2.EoF
                '-- We need to walk through the SO to find the item that we are receiving based on the LineNum
                Dim liCurrentLine As Integer = x
                Dim lbFound As Boolean = False
                While liCurrentLine <= (oSalesOrder.Lines.Count - 1)
                  '-- We need to get the PO Line number (x is NOT the LineRef)
                  oSalesOrder.Lines.SetCurrentLine(liCurrentLine)
                  If oSalesOrder.Lines.LineNum = liMinRef Then
                    lbFound = True
                    Exit While
                  End If
                  liCurrentLine += 1
                End While
                If lbFound Then
                  i += 1
                  If i > oDelivery.Lines.Count Then
                    oDelivery.Lines.Add()
                  End If
                  oDelivery.Lines.BaseEntry = oSalesOrder.DocEntry
                  oDelivery.Lines.Quantity = RecSet2.Fields.Item(6).Value
                  oDelivery.Lines.BaseType = SAPbobsCOM.BoObjectTypes.oOrders
                  oDelivery.Lines.LineTotal = oSalesOrder.Lines.LineTotal * (oDelivery.Lines.Quantity / oSalesOrder.Lines.Quantity)
                  oDelivery.Lines.UserFields.Fields.Item("U_WhseLoc").Value = RecSet2.Fields.Item(8).Value
                  oDelivery.Lines.AccountCode = oSalesOrder.Lines.AccountCode
                  oDelivery.Lines.Address = oSalesOrder.Lines.Address
                  oDelivery.Lines.Currency = oSalesOrder.Lines.Currency
                  oDelivery.Lines.ItemCode = oSalesOrder.Lines.ItemCode
                  oDelivery.Lines.BaseLine = liMinRef
                  oDelivery.Lines.ItemDescription = oSalesOrder.Lines.ItemDescription
                  oDelivery.Lines.WarehouseCode = oSalesOrder.Lines.WarehouseCode
                  lsUserID = RecSet2.Fields.Item("UserID").Value
                  '-- manage serial numbers
                  j = -1
                  lsSQL = "Select * from DeliverySerial WHERE DocEntry = " & oDelivery.Lines.BaseEntry & " AND LineRef = " & liMinRef
                  lsSQL += " AND WIPLineRef = " & RecSet2.Fields.Item("WIPLineRef").Value
                  RecSet3.DoQuery(lsSQL)
                  While Not RecSet3.EoF
                    '-- get the next SystemSerialNumber for the Inventory Item
                    lsSQL = "EXEC " & gsDB(piCompany) & "xspGetSysSerial " & sparm(oDelivery.Lines.ItemCode) & ", " & sparm(RecSet3.Fields.Item("LotNo").Value)
                    lsSQL += ", " & sparm(RecSet3.Fields.Item("ManSerNo").Value) & ", " & sparm(RecSet3.Fields.Item("IntSerNo").Value)
                    lsSQL += ", " & RecSet3.Fields.Item("QTY").Value & ", " & sparm(oDelivery.Lines.WarehouseCode) & ", " & sparm(RecSet2.Fields.Item(8).Value)
                    RecSet4.DoQuery(lsSQL)
                      j += 1
                      If j + 1 > oDelivery.Lines.SerialNumbers.Count Then
                        oDelivery.Lines.SerialNumbers.Add()
                      End If
                      oDelivery.Lines.SerialNumbers.SetCurrentLine(j)
                      oDelivery.Lines.SerialNumbers.BatchID = RecSet3.Fields.Item("LotNo").Value
                      oDelivery.Lines.SerialNumbers.ManufacturerSerialNumber = RecSet3.Fields.Item("ManSerNo").Value
                      oDelivery.Lines.SerialNumbers.InternalSerialNumber = RecSet3.Fields.Item("IntSerNo").Value
                      oDelivery.Lines.SerialNumbers.SystemSerialNumber = RecSet4.Fields.Item(0).Value
                      oDelivery.Lines.SerialNumbers.BaseLineNumber = oDelivery.Lines.BaseLine
                    RecSet3.MoveNext()
                  End While
                  '-- 'end manage serial numbers
                End If
                RecSet2.MoveNext()
              End While
            Next x
            '-- now add object to SAP
            If 0 <> oDelivery.Add() Then
              Dim liError As Long
              Dim lsError As String
              Call oCompany(piCompany).GetLastError(liError, lsError)
              '-- write error code to table - Delivery document creation was unsuccessful
              lsSQL = "Update DeliveryTable SET ProcessResult = " & liError & ", ProcessDate = GetDate() WHERE DocEntry = " & oSalesOrder.DocEntry & " AND ProcessResult Is Null"
              RecSet2.DoQuery(lsSQL)
              lsuWriteEvent("AR Delivery", bDocuments(piCompany).DelDraft, oSalesOrder.DocEntry, liError, lsError, piCompany)
            Else
              lsuWriteEvent("AR Delivery", bDocuments(piCompany).DelDraft, oSalesOrder.DocEntry, 0, "Success", piCompany)
            End If
            RecSet.MoveNext()
          End While
        Catch
          LogErrorMessage(Err.Description)
        Finally
          If Not RecSet Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet)
          End If
          If Not RecSet2 Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet2)
          End If
          If Not RecSet3 Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet3)
          End If
          If Not RecSet4 Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet4)
          End If
          If Not RecSet5 Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet5)
          End If
          If Not RecSet6 Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(RecSet6)
          End If
          If Not oSalesOrder Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oSalesOrder)
          End If
          If Not oDelivery Is Nothing Then
            System.Runtime.InteropServices.Marshal.ReleaseComObject(oDelivery)
          End If
          GC.WaitForPendingFinalizers()
        End Try

    We have narrowed down the issue to this:
    If you are just adding a delivery document with serial numbers, the DIAPI works OK.  If you are adding a delivery document which is based upon a sales order and add the 3 lines that reference it:
    oDelivery.Lines.BaseEntry = oSalesOrder.DocEntry
    oDelivery.Lines.BaseType = SAPbobsCOM.BoObjectTypes.oOrders
    oDelivery.Lines.BaseLine = liMinRef
    then you receive a error of -1, General error.  This is functionality that did work in 2004 and 2005 SP00.  I believe this is a bug.

  • Sales Analysis Report for Batch Numbers

    I am currently having an issue with Batch numbers and sales analysis report item wise. If the goods are delivered it does not show the quantity in the report. is there a way to make the quantites show. Open delivery notes show the quantity in the report. Could the reason be that once the delivery note is closed the quantity does not show in the report.????

    Dear Mr Shah,
    If I understood correctly, you are saying that there is no issue in adding the document with the batch but it is not shown in the Sales Analysis report?
    The Sales Analysis report does not show information regarding the quantity because it focuses on the value of the document.
    In order to have an overview on the trasactions related to the batches please use the Batch Number Transaction Report under Inventory - Inventory report.
    Regards,
    Marcella Rivi
    SAP Business One Forums Team

  • Duplicate entries (Batch numbers) in printout

    Hi experts,
    we are using Inventory Transfer for Consignment Stock in B1. When we print the document we get an inventory transfer document and a Delivery Note/Packing List that shows the batch numbers ("Batch Report in Document Structure").
    However, the line with the batch number always shows up twice. It just duplicates it as it would grab the information from two different tables. But this is confusing and makes no sense at all to have a double entry.
    I'm using a customized template. There are three fields in the repetitive area that show up twice in the printout:
    - OIBT - Batch No. for Item: Batch Attribute 1
    - OIBT - Batch No. for Item: Quantity
    - OIBT - Batch No. for Item: Location
    Thanks in advance for your help.
    Please let me know in case you need more information. I spent several hours to figure out why it duplicates the entries, but I couldn't find a solution.

    With customization I mean that it's different from the system template. I deleted some fields we don't need etc.
    I changed it to the system template (Batch Report (System)), but with this template I get the same. The line from the repetitive area shows up twice in the printout.
    I thought there is only one table where the template grabs the information, but it looks like there are two separate sources.

  • Pre-book ( Advance booking ) document id's numbers in SAP DMS

    Hi All,
    Please help me,
    How to create a "'pre-book' ( Advance booking ) document id's numbers in SAP DMS".
    Actually they want to auto create new document info records using transaction CV01N.
    Thanks,
    Subbu
    Edited by: Subramani Duraiswamy on Apr 29, 2008 10:27 AM
    Edited by: Subramani Duraiswamy on Apr 29, 2008 10:29 AM

    Kannan
    OK. Unfortunately reservations cannot be created at the serial number level. So the unsupported way of doing this is updating the mtl_serial_numbers tables. I hope you would know (by some means) which serial numbers you want to allocate to a specific sales orders. If you know, update group_mark_id column in mtl_serial_numbers table with your order_line_Id, This will avoid any one from picking the serial numbers (they will not come up in the LOV or will not be auto allocated).
    But you have to make sure to take it off when you actually want to pick this order line and allocate this serial number. So just before you pick release/ confirm this order line you need to update column back to null so that you can allocate that serial number.
    Thanks
    Nagamohan

  • Accessing batch numbers in SBO2007

    Hi
    I have added a button to the goods receipt po screen to print labels for a customer which includes batch numbers
    The problem I have is I cannot find out where the batch numbers are stored, I have looked in the OIBT table but that is not updated until the actual goods receipt is added
    Can anyone help me pls ?
    Many thanks
    Regards Andy

    Hi David
    Just did a test and I can't see it in the table.
    Please remember the user will have assigned batch numbers but the goods receipt form will not yet be saved
    Thanks
    Regards Andy

  • BAPI_GOODSMVT_CREATE, and automatic batch numbers

    Hello,
    I am using BAPI_GOODSMVT_CREATE and doing good receipt vs., a Purchase Order, GM 01.    The material is auto batch managed and I see the batches are generated when I go into MSEG for the good receipt line items.   However, batch numbers are not returned in the bapi return information.
    Is there a way to get the batch numbers to return in the BAPI_GOODSMVT_CREATE bapi?  If so, please let me know.  If not, please also let me know and I will do a subsequent look-up to get that info.
    Thanks

    BAPI_GOODSMVT_CREATE will return the material document number posted. Use that to get the batch number from table MSEG.
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
      EXPORTING
        GOODSMVT_HEADER  = LS_GOODSMVT_HEADER
        GOODSMVT_CODE    = LS_GOODSMVT_CODE
      IMPORTING
        GOODSMVT_HEADRET = LS_GOODSMVT_HEADRET
      TABLES
        GOODSMVT_ITEM    = LT_GOODSMVT_ITEM
        RETURN           = LT_RETURN.
    IF LS_GOODSMVT_HEADRET-MAT_DOC IS NOT INITIAL.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT   = GC_TRUE
        IMPORTING
          RETURN = LS_RETURN.
      SELECT SINGLE CHARG FROM MSEG INTO LV_CHARG
              WHERE MBLNR EQ LS_GOODSMVT_HEADRET-MAT_DOC
                AND ZEILE EQ '0001'.
    ENDIF.
    *Assumes single item document posted

Maybe you are looking for

  • Help! Why is the Pre's speaker ringing an incoming call when I have a headset on?

    Hi all, I just had the most embarrassing thing happen to me today. I was listening to some music on my Pre with the headset (that came with the Pre), and I received an incoming call. I heard it ring and answered the call, no problem what I thought! W

  • Sharing a numbers file with joint apple id

    I want to share a numbers file between my iMac in my user account, my wifes mac mini in her user account and my wifes iPad. I thought the way to accomplish this would be to create a second joint apple ID that is used for sync'g documents in iCloud. N

  • Report Sales & Collection

    Hi I am working on Sales and Collection Report, please let me know how to get sales and collection within the period using BSID AND BSAD tables . Regards Sebastian John

  • SRM PO to ECC not desired

    Hi, I am working on a scenario where the client is not desiring the SRM PO created on the  SRM Portal to be replicated (reflected) in ECC. ECC should not contain any SRM POs. Is this possible? If yes, how can this be done? On the other hand they just

  • Print quality on Colorjet 3700, repeat vertical multicolor stripe when cold

    When cold the unit producies a repeating multicolor 8 mm wide stripe 13 mm from left hand edge, when printing from tray 2(cassette) and 12 mm from right edge when printing from tray 1 (manual feed tray).the paper size is letter 8 1/2 x 11. The fundam