#1
|
|||
|
|||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|