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. |
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 |
Hola dcontreras80,
He visto que no le pasas ningún valor en el campo SECUENCE, yo siempre le paso 000000, prueba a ver. Saludos. |
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. |
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. |
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
|
Husos Horarios son GMT. La hora en este momento es 08:14:00. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web