Tengo una grandísima duda, estoy tratando de crear un articulo a nivel articulo y que solo sea un articulo de compra vía Di Api SDK. Entonces asigno el itemcode,el nombre y le digo que es un articulo de solo de compra y le asigno las cuentas a mi almacén que yo escogí como predeterminado. Pero resulta al que yo al crearlo me pide que también agregue la cuentas al resto de los almacenes que tiene la empresa, y yo solo quiero agregarlo a mi almacén predeterminado. mi duda es, abra una forma de borrar las lineas de los demás almacenes que no ocupo o le podre agregar las mismas cuentas a todos los almacenes.
Me pueden ayudar con esto por favor. Muchas gracias.
Estimado buen dia.
Te sugiero que hagas la prueba de crear manualmente un nuevo articulo, directamente en SAP y validar que datos SI te son obligatorios y cuales NO.
Esto solo para verificar que te exige tu SAP para crear el articulo.
Algo que tambien hay que tomar en cuenta es que las cuentas contables de los almacenes las vincula desde la opcion del grupo de articulos, es decir, dependiendo que Grupo de Articulos le estas asignando al NUEVO articulo, asi seran las cuentas contables que tomará.
Esto seria lo primero de revisar. Antes de llegar al codigo de programacion.
Espero que esto te sirva.
Al momento de crear los artículos (sean por SAP o sea por SDK), tienes 3 puntos para configurar las cuentas contables:
A nivel de Grupo de Artículo: Toma las configuraciones realizadas al grupo de artículo específicamente.
A nivel de Almacén: Toma las cuentas contables del almacén
A nivel de Artículo: Toma las cuentas contables a nivel de Artículo (inventario - dato maestro de articulo - pestaña inventario)
Me imagino que tú estas tomando la opción 3, a nivel de Artículo, por consiguiente debes colocar todas las cuentas contables mínimas para todos los almacenes.
Hola, si lo llevas a nivel de artículo puedes agregarle las mismas cuentas a cada almacén ya que no te deja borrar las filas a menos que no hayan tenido ningún movimiento en esos almacenes.
Se trata de artículos cuya determinación de cuentas es a nivel artículo.
El mismo artículo se debe crear en varias bases de datos
Ninguna base de datos tiene el mismo número de almacenes
Lo que requiere el compañero hacer a través de DI-API es una de las dos siguientes opciones:
Quitar todos los almacenes asignados al artículo y dejar solo uno, donde se agregaría la cuenta de gastos deseada.
Agregar la misma cuenta de gastos a todos los almacenes.
En si, el problema es cómo recorrer los almacenes del artículo, a través de la DI-API, para poder quitarlos o bien, asignarles a todos la misma cuenta.
Efectivamente como menciona el compañero @Gera_Mendez.
Tengo que quitar los almacenes o agregar las mismas cuentas a todos lo almacenes.
Por que hasta ahorita asigno un almacén como predeterminado y a ese si me agrega las cuentas correctamente pero al crearlo me dice que no he asignado las cuentas a los demás almacenes.
Anexo el fragmento de mi código:
Item.InventoryItem = tNO
Item.SalesItem = tNO
Item.PurchaseItem = tYES
Item.GLMethod = glm_ItemLevel
Item.InventoryUOM = "SER"
'almacen predertiminado
Item.WhsInfo.WarehouseCode = "WC0002"
'cuenta de gastos
Item.ExpanseAccount = Cons1 'ActiveSheet.Cells(Row, 4)
'cuenta de credito compra
Item.WhsInfo.PurchaseCreditAcc = cons2 'ActiveSheet.Cells(Row, 4)
'cuenta de credito compras extranjero
Item.WhsInfo.ForeignPurchaseCreditAcc = cons3 'ActiveSheet.Cells(Row, 4)
If Item.ItemCode <> "" Then
res = Item.Add
If res <> 0 Then
MsgBox (oCompany.GetLastErrorDescription())
Else
Hay una configuración a nivel general, que automáticamente al crear un item te agrega todos los almacenes, puedes quitar esta configuración, o puede hacerlo a través de la propiedad ItemWarehouseInfo.
Por ejemplo este código agrega un almacén:
if oItems.GetByKey("ItemCode")
oItems.WhsInfo.WarehouseCode = "WarehouseCode"
oItems.WhsInfo.Add()
oItems.Update()
endif
Mi problema es que no se como eliminar un almacén o recorrer todos los demás. Por que al que yo escojo predeterminado pero todos lo demás se quedan vivos y no me agrega las mismas cuentas. No tendrás un código de borrar o recorrer los almacenes
Dim oItem As SAPbobsCOM.Items = ocompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oItems)
For each itemCode in oitm then
If oItem.GetByKey(sidItem) Then
For i= 0 to oItem.WhsInfo.Count -1 do
oItem.WhsInfo .SetCurrentLine ℹ️
if oItem oItem.WhsInfo.WarehouseCode ="yourspecificwarehouse" then
oItem.WhsInfo.Delete()
end if
Next i
oItem.Update()
End if
End If