MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Otros lenguajes: VB, JAVA
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 07/05/12, 11:35:12
rogerclavell rogerclavell is offline
Junior Member
 
Fecha de Ingreso: may 2012
Mensajes: 7
Ejemplo BAPI_PRODORDCONF_CREATE_TT y BAPI_GOODSMVT_CREATE

Hola gente,

Os paso un ejemplo de como utilizar las bapis BAPI_PRODORDCONF_CREATE_TT y BAPI_GOODSMVT_CREATE. Esta hecho de manera rápida simplemente para ver que funciona.

Para programar he utilizado el VS2010 y el connector sap 3.0

Imports SAP.Middleware.Connector

Private Sub notificar()

'Parametros de conexión de SAP
Dim SapParametros As New RfcConfigParameters
SapParametros(RfcConfigParameters.User) = "tu_usuario"
SapParametros(RfcConfigParameters.Password) = "tu_password"
SapParametros(RfcConfigParameters.SystemID) = "sap_maquina"
SapParametros(RfcConfigParameters.Client) = "sap_mandante"
SapParametros(RfcConfigParameters.Name) = "sap_groupname"
SapParametros(RfcConfigParameters.AppServerHost) = "sap_ip"
SapParametros(RfcConfigParameters.SystemNumber) = "sap_numero_systema"
SapParametros(RfcConfigParameters.Language) = "ES"


Try
'Conexión SAP
Dim destino As RfcDestination
destino = RfcDestinationManager.GetDestination(SapParametros)


'Nueva función para ejecutar la BAPI_PRODORDCONF_CREATE_TT
Dim funcion As IRfcFunction = destino.Repository.CreateFunction("BAPI_PRODORDCONF_CREATE_TT")

'Notificaciones para guardar en SAP
Dim tbl_TIMETICKETS As IRfcTable = funcion.GetTable("TIMETICKETS")
tbl_TIMETICKETS.Append()
tbl_TIMETICKETS.SetValue("ORDERID", "000001001811") 'Orden de fabricación
tbl_TIMETICKETS.SetValue("SEQUENCE", "000000") 'Sequencia
tbl_TIMETICKETS.SetValue("OPERATION", "0010") 'Operación
tbl_TIMETICKETS.SetValue("WORK_CNTR", "puesto_trabajo") 'Puesto de trabajo
tbl_TIMETICKETS.SetValue("PLANT", "sap_centro") 'Centro
tbl_TIMETICKETS.SetValue("YIELD", "400") 'Cantidad buena
tbl_TIMETICKETS.SetValue("CONF_ACTIVITY1", "5") 'Tiempo a notificar
tbl_TIMETICKETS.SetValue("RECORDTYPE", "L20")
tbl_TIMETICKETS.SetValue("FIN_CONF", "")
tbl_TIMETICKETS.SetValue("POSTG_DATE", Format(Now, "yyyyMMdd")) 'Fecha contable
tbl_TIMETICKETS.SetValue("DEV_REASON", "P010")
tbl_TIMETICKETS.SetValue("SCRAP", "2") 'Cantidad de rotura
tbl_TIMETICKETS.SetValue("CONF_TEXT", "PRUEBAS") 'Texto notificación


'Ejecutar la BAPI
Dim ejecuta As New RfcTransaction
funcion.Invoke(destino)
ejecuta.AddFunction(funcion)
ejecuta.Commit(destino)

'Resultados de la BAPI
Dim tbl_DETAIL_RETURN As IRfcTable = funcion.GetTable("DETAIL_RETURN")



'Nueva función para ejecutar la BAPI_GOODSMVT_CREATE
Dim funcion2 As IRfcFunction = destino.Repository.CreateFunction("BAPI_GOODSMVT_CREATE")

'Parametros de GOODSMVT_HEADER
Dim str_GOODSMVT_HEADER As IRfcStructure = funcion2.GetStructure("GOODSMVT_HEADER")
str_GOODSMVT_HEADER.SetValue("PSTNG_DATE", Format(Now, "yyyyMMdd"))
str_GOODSMVT_HEADER.SetValue("DOC_DATE", Format(Now, "yyyyMMdd"))
str_GOODSMVT_HEADER.SetValue("PR_UNAME", "rfcuser")

'Parametros de GOODSMVT_CODE
Dim str_GOODSMVT_CODE As IRfcStructure = funcion2.GetStructure("GOODSMVT_CODE")
str_GOODSMVT_CODE.SetValue("GM_CODE", "02")

'Movimientos de mercancia a generar en SAP
Dim tbl_GOODSMVT_ITEM As IRfcTable = funcion2.GetTable("GOODSMVT_ITEM")
tbl_GOODSMVT_ITEM.Append()
tbl_GOODSMVT_ITEM.SetValue("MATERIAL", "000000000100010264") 'Material
tbl_GOODSMVT_ITEM.SetValue("PLANT", "sap_centro") 'Centro
tbl_GOODSMVT_ITEM.SetValue("STGE_LOC", "sap_almacen") 'Almacén
tbl_GOODSMVT_ITEM.SetValue("BATCH", "lote_material") 'Lote
tbl_GOODSMVT_ITEM.SetValue("MOVE_TYPE", "901") 'Tipo mov.
tbl_GOODSMVT_ITEM.SetValue("MVT_IND", "F") 'Indicador mov.
tbl_GOODSMVT_ITEM.SetValue("STCK_TYPE", "F") 'T.Stock
tbl_GOODSMVT_ITEM.SetValue("ORDERID", "000001001811") 'Orden de fabricación
tbl_GOODSMVT_ITEM.SetValue("ENTRY_QNT", "400") 'Cantidad
tbl_GOODSMVT_ITEM.SetValue("ENTRY_UOM", "PZS") 'UMB

'Ejecutar la BAPI
Dim ejecuta2 As New RfcTransaction
funcion2.Invoke(destino)
ejecuta2.AddFunction(funcion2)
ejecuta2.Commit(destino)

'Resultado de la ejecución
Dim tbl_RETURN As IRfcTable = funcion2.GetTable("RETURN")

Catch ex As Exception
MsgBox(ex.ToString)
End Try

End Sub


Espero sirva de ayuda para la gente que esta empezando, como yo.
Responder Con Cita
  #2  
Viejo 18/09/12, 21:17:12
dcontreras80 dcontreras80 is offline
Junior Member
 
Fecha de Ingreso: feb 2009
Mensajes: 29
Ejemplo BAPI_PRODORDCONF_CREATE_TT y BAPI_GOODSMVT_CREATE

Hola Roger,

Muchas Gracias por el tema.

Tengo una inquietud.

Estoy ejecutando la BAPI BAPI_PRODORDCONF_PDC_UPLOAD_TT

solo llenando la tabla TIMETICKETS
ya que solo quiero probar la notificación sin los movimientos de mercancías.

Cuando ejecuto la Tx SE37 no me genera errores
En Return no sale mensaje, solo 000. Si por favor me puedes ayudar.

La tabla TIMETICKETS
La estoy llenando con estos parámetros.

CONF_NO 0000000000
ORDERID 21000348
SEQUENCE
OPERATION 0011
SUB_OPER
CAPA_CATEGORY
SPLIT 0
FIN_CONF 1
CLEAR_RES X
POSTG_DATE 18.09.2012
DEV_REASON
CONF_TEXT
PLANT
WORK_CNTR
RECORDTYPE
CONF_QUAN_UNIT
CONF_QUAN_UNIT_ISO
YIELD 0,000
SCRAP 0,000
REWORK 0,000
CONF_ACTI_UNIT1 MIN
CONF_ACTI_UNIT1_ISO
CONF_ACTIVITY1 0,000
NO_REMN_ACTI1
CONF_ACTI_UNIT2 MIN
CONF_ACTI_UNIT2_ISO
CONF_ACTIVITY2 30,000
NO_REMN_ACTI2
CONF_ACTI_UNIT3 MIN
CONF_ACTI_UNIT3_ISO
CONF_ACTIVITY3 353,363
NO_REMN_ACTI3
CONF_ACTI_UNIT4 MIN
CONF_ACTI_UNIT4_ISO
CONF_ACTIVITY4 256,060
NO_REMN_ACTI4
CONF_ACTI_UNIT5 MIN
CONF_ACTI_UNIT5_ISO
CONF_ACTIVITY5 639,423
NO_REMN_ACTI5
CONF_ACTI_UNIT6 MIN
CONF_ACTI_UNIT6_ISO
CONF_ACTIVITY6 256,060
NO_REMN_ACTI6

Muchas Gracias


Responder Con Cita
  #3  
Viejo 31/10/12, 08:24:22
rogerclavell rogerclavell is offline
Junior Member
 
Fecha de Ingreso: may 2012
Mensajes: 7
Hola dcontreras80,

He visto que no le pasas ningún valor en el campo SECUENCE, yo siempre le paso 000000, prueba a ver.

Saludos.
Responder Con Cita
  #4  
Viejo 05/03/14, 15:52:36
jbarajas jbarajas is offline
Junior Member
 
Fecha de Ingreso: jun 2011
Mensajes: 6
Testrun

Hola.
En el ejemplo mencionado, ¿se puede usar el "TESTRUN"?
Lo intenté pero marca un valor de nothing.
Dim str_TESTRUN As IRfcStructure = funcion2.GetStructure("TESTRUN")
str_TESTRUN.SetValue("TESTRUN", "X") 'Modo de Prueba
Gracias.



Responder Con Cita
  #5  
Viejo 05/03/14, 18:32:49
jbarajas jbarajas is offline
Junior Member
 
Fecha de Ingreso: jun 2011
Mensajes: 6
Se salta folios

Hola. Estoy corriendo el ejemplo para generar entrada, pero el detalle es que se salta folios cada vez que se ejecuta. Lo raro es que en el resultado muestra el folio que sigue, pero al consultar el movimiento en sap es otro numero.
Por ejemplo, se corre el programa y dice que generó el folio 5000000391, y consultas en sap y es el 5000000392. Se vuelve a correr el programa y dice que generó el folio 5000000393, y se consulta en SAP y es el 5000000394, y así sucesivamente.
Tengo un solo Invoke y commit, que estará sucediendo?
Gracias de antemano.
Responder Con Cita
  #6  
Viejo 07/07/15, 16:13:18
mastsolutions mastsolutions is offline
Junior Member
 
Fecha de Ingreso: jul 2015
Mensajes: 1
proble with folio generation

I also have the same problem with the generation of the document, you have solved? Could you help me? thank you and greetings
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 00:00:03.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web