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 MartinHi 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?
Trying re-purchasing. won't let me. says to check for updates?
any suggestionsIt 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 BagusHi 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éverineYou 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? thanxPatchset 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. RasmussenHi 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 TryWe 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 AMKannan
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 AndyHi 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.
ThanksBAPI_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
-
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
-
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