Ha pasado un tiempo desde que implementé mi primer escenario basado en eventos en SAP Business One. Desde que empecé, me encontré con un «océano» de posibilidades/plataformas/servicios que ofrecen más o menos el mismo enfoque sobre cómo lograrlo, cada uno de los cuales tiene sus propios pros y contras.
No cabe duda de que el sector está muy desarrollado y puede ofrecer numerosas formas de hacer las cosas, y yo soy un poco «entusiasta» cuando se trata de aprender nuevas tecnologías (al fin y al cabo, es nuestro pan de cada día). Pero siempre que me siento a redactar el diseño de un proyecto, intento ceñirme al enfoque «One-Stop», en el que optar por reutilizar herramientas y servicios integrados en la propia aplicación B1 sería probablemente lo primero de mi lista.
Estas herramientas han estado ahí fuera desde entonces y se han ampliado a lo largo de los años y no sólo no han quedado obsoletas, sino que han ampliado sus capacidades y prestaciones.
No me malinterpreten; creo que la Plataforma SAP BTP, por ejemplo, ofrece infinitas posibilidades a la hora de consumir Servicios Web REST que pueden interactuar con nuestros sistemas SAP y también permite reutilizar algunos de los conectores más potentes para integrarse con otros sistemas SAP / No-SAP, así como para ampliar nuestras aplicaciones empresariales y procesos de negocio. El SAP BTP también utiliza servicios de vanguardia como AI Builders y las herramientas Fiori Apps. Por lo tanto, no se trata de desprestigiar a SAP BTP, que se ha ganado su lugar por derecho propio, sino simplemente de afirmar que SAP BTP no es lo único que existe.
Sin embargo, aquellos que hayan intentado navegar por este océano de datos expuestos sobre la plataforma SAP BTP probablemente ya se habrán dado cuenta de que BTP está muy orientada a S4/HANA y no está específicamente diseñada para los desarrolladores de SAP Business One.
Además, la BTP presenta algunas carencias evidentes:
- Configuración larga y tediosa: añadir una suscripción, instancia o derecho le costará tiempo y, en la mayoría de los casos, no lo hará bien a la primera.
- Los niveles de precios no son adecuados para las PYME. Mientras utilice la suscripción «gratuita» para entornos no productivos, no tendrá problemas, pero una vez que pase a los niveles de suscripción «de pago por uso» y entre en producción, en la mayoría de los casos, se convertirá en una «sobrecarga» para cualquier proyecto basado en PYMES y también será bastante costoso.
- No tiene conciencia incorporada de los objetos B1. Podemos usarla y llamarla como usaríamos cualquier otra API para que «sepa» lo que queremos obtener.
Así que vayamos al grano: ¿cómo implementamos un escenario de reenvío de eventos y utilizamos la información que obtenemos para activar/construir otras soluciones relacionadas con B1 sin complicar demasiado las cosas?
Normalmente, tendríamos que hacer lo siguiente:
- Configurar una instancia de SAP Event Mesh en BTP
- Disponer de una aplicación SAP CAP para gestionar los eventos en BTP (normalmente utilizada para crear
empresa
-empresariales, lo que, una vez más, es «columpiarse en la valla» cuando se trata de SAP B1). - Necesitaríamos codificar un paso auxiliar para recuperar el Token con el fin de autenticar contra la instancia SAP Event Mesh en la Plataforma SAP BTP.
La visión general de la arquitectura tendría el siguiente aspecto:
¿Y si te dijera que podemos saltarnos la parte en la que nos suscribimos al BTP e ir directamente a nuestro B1 Integration framework (B1If) para consumir esos eventos y utilizarlos posteriormente para ampliar el comportamiento de nuestra aplicación B1 utilizando Microsoft Azure?
Suponiendo que tenga el B1iF instalado y configurado correctamente en su entorno, habrá empezado con buen pie.
Le recomiendo encarecidamente que considere la adopción de las siguientes medidas para asegurarse de que cumple plenamente todos los requisitos previos:
- Configuración del entorno de desarrollo B1iF.
- Comprender los fundamentos y la visión general técnica del B1iF.
- Establecer la configuración SLD de su empresa.
- Configurar la conectividad a la capa de servicios B1 (no queremos depender únicamente de la DI-API, que es la «vieja generación» de API de extensión para consumir datos y servicios de SAP Business One).
** Si tiene algún problema con la configuración del B1iF, no dude en ponerse en contacto conmigo y estaré encantado de ofrecerle ayuda y asistencia**.
Por último, queremos configurar nuestro emisor de eventos B1iF para que comience a disparar eventos.
Las mejores prácticas del B1iF dictan que nos atengamos a lo siguiente:
1)Asegúrese de que accede al Integration Framework 2.0 en lugar de al 1.0:
Esto conlleva varias ventajas clave:
- Además del marco de integración, todos los modelos de programación pueden ejecutarse simultáneamente en paralelo.
- Optimizado para la computación en nube
- Arrendamiento múltiple incorporado: más flexibilidad en la implantación de escenarios
- Diseñado para todos los desarrolladores de integración
- Mayor flexibilidad
- Más control y transparencia en el desarrollo de contenidos de integración
- Los desarrolladores «clásicos» se sienten más cómodos gracias al nuevo IDE basado en navegador
- Hasta 10 veces más rápido: se ejecuta directamente sobre la plataforma de integración.
- No sustituye al modelo de programación actual No es necesario migrar los paquetes de escenarios existentes, a menos que se quiera hacer uso de la multitenencia en entornos de nube
2. Asegúrate de que todas tus conexiones SLD son correctas:
Tener una de estas conexiones rotas comprometerá el proceso y no permitirá la comunicación con tu servidor HANA / Service Layer más adelante, por lo que querrás asegurarte de que todas están claras y, en caso de que no lo estén, reconfigurar tus cadenas de conexión.
3) Asegúrese de filtrar los eventos B1i accediendo a Maintenance -> B1 Event Filter y marcando la casilla «B1i User Filter Switched On». De esta forma se asegurará de eliminar todos los eventos del sistema que no desee escuchar.
Tenga en cuenta que también puede incluir esa configuración en la versión 1.X accediendo directamente desde la versión 2.0 (en Herramientas ->Versión 1) y navegando hasta el Asistente de envío de eventos.
Aquí es donde también querrás incluir tus IDs de Objeto B1 para todos aquellos objetos de los que desees obtener eventos
Puede encontrar la lista completa de objetos B1 al final de este hilo
También puede recuperar ese valor directamente desde la aplicación B1 iniciando el Generador de consultas y seleccionando la columna «<nombre_tabla>».» ObjType»:
4) El paso más importante es comprobar que SUS eventos NO se filtran, sino que se transmiten al Monitor de Eventos B1 cuando se activa su escenario.
En mi caso, simplemente creé un Business Partner y actualicé la pantalla para ver que B1iF era capaz de captar el evento:
Nota: La ejecución de la prueba sólo tendrá éxito si se asegura de añadir un nuevo despliegue al «Panel de Despliegue» de su escenario y asigna un sistema Remitente/Receptor válido desde su SLD- ese panel es la nueva (¡y genial!) característica de la versión 2.0 que le permite obtener una única visión general de todos los artefactos de su escenario.
Una vez que sabemos a ciencia cierta que nuestro Emisor de Eventos está procesando correctamente nuestros eventos, podemos proceder con la construcción de nuestro escenario en BizFlow.
Ahora bien, es importante que entendamos bien lo que intentamos conseguir aquí:
Sólo queremos que B1iF reenvíe cada evento que cumpla nuestros criterios de filtrado a un flujo de trabajo externo basado en HTTP WebHook en forma de una carga útil XML de la que podamos analizar y recuperar datos.
¡Eso es todo!
Si se preguntan «¿por qué?», la respuesta es bastante sencilla:
Con
Azure Logic Apps
y el conector HTTP Webhook incorporado, podemos crear tareas y flujos de trabajo automatizados que se suscriben a un punto final de servicio mediante el registro de una URL de devolución de llamada, esperan eventos específicos y se ejecutan en función de esos eventos, en lugar de comprobar o sondear regularmente ese punto final.
Esto es especialmente útil y beneficioso en los casos en que las PaaS (plataformas como servicio) como Microsoft-Azure le cobran por ejecución.
Imagínese cuántas ejecuciones se desencadenarán en un plazo de 24 horas cuando un flujo de trabajo está programado para ejecutarse cada 15 minutos (96 ejecuciones) frente a 3 ejecuciones para esos 3 nuevos interlocutores comerciales que ha creado cuando el flujo de trabajo es sólo se activa justo después de añadir el registro del socio comercial a la base de datos B1.
Esto repercute directamente en el consumo y, en consecuencia, en cuánto se le cobrará a final de mes.
Dicho esto, voy a cubrir el lado Logic App de nuestro proyecto durante la próxima parte de este blog.
En primer lugar, finalicemos nuestro escenario y los pasos del escenario.
Nuestro diagrama BizFlow será relativamente sencillo:
Estamos ante un típico modo de proceso «asíncrono» en el que el evento se dispara, se obtiene y se retransmite al Atom de entrada, donde se transforma a través de un Atom XSLT para ser utilizado en nuestro Atom HTTPCall.
Tenga en cuenta que B1iF siempre procesa los datos internamente como XML por lo que, en nuestro caso, sólo deseamos obtener la representación XML de nuestro evento desde el Sistema Emisor (Emisor de Eventos) y utilizarla como parte de nuestro Cuerpo de Llamada HTTP.
Una buena forma de analizar la estructura de los mensajes durante el tiempo de ejecución es utilizar el depurador B1iF:
Nuestra transformación XSL Atom sólo tendrá que ser ajustado para obtener la carga útil XML entrante del Evento B1, donde una expresión XPATH se añadirá a continuación a nuestra HTTPCall Atom para.
Volveremos a nuestro HttpCall Atom después de concluir nuestra discusión sobre Logic App (WebHook) en la Parte 2 de este blog.
Resumamos lo que hemos conseguido hasta ahora:
- Hemos presentado nuestro tema principal – Creación y Reenvío de Eventos en SAP Business One
- Cubrimos algunas de las formas más comunes de lograr el manejo de eventos, al tiempo que esbozamos los pros y los contras de cada enfoque.
- Repasamos algunos de los ajustes y configuraciones básicos de SAP Business One Integration Framework
- Cubrimos las nuevas mejoras de la versión 2.0 de B1iF
- Tuvimos una visión detallada de la configuración del Remitente de Eventos y aprendimos cómo establecer con éxito los criterios de filtrado para los Objetos B1 de los que deseamos obtener eventos
- Aprendimos a desplegar un desarrollo a través del «Panel de Despliegue» de nuestro escenario y a asignar un sistema emisor/receptor SLD.
- Hablamos de los HTTP WebHooks y comprendimos cómo desempeñan un papel importante en la reducción del número de ejecuciones del flujo de trabajo que, en última instancia, afectarán a nuestra facturación.
- Recorrimos los distintos pasos del escenario para recibir un mensaje entrante ( evento ), luego procesarlo y transformarlo, y además prepararlo para el HTTPCall Atom.
Únase a nosotros en la página del Blog de la Comunidad de SAP Business One para la Parte 2 de Implementación de un mecanismo de reenvío de eventos utilizando SAP Business One B1iF y Microsoft Azure.
Lista de tipos de objetos de SAP Business One
Cuadro | Descripción de la tabla | Clave primaria | Tipo de objeto |
OACT | Cuentas de mayor | Código de cuenta | 1 |
OCRD | Socio comercial | Código de tarjeta | 2 |
ODSC | Códigos bancarios | AbsEntry | 3 |
OITM | Artículos | Código de artículo | 4 |
OVTG | Definición fiscal | Código | 5 |
OPLN | Listas de precios | ListaNum | 6 |
OSPP | Precios especiales | CódigoTarjeta, CódigoArtículo | 7 |
OITG | Propiedades de los artículos | ItmsTypCod | 8 |
ORTM | Diferencias de tipos | LineNum, IsSysCurr | 9 |
OCRG | Grupos de tarjetas | CódigoGrupo | 10 |
OCPR | Personas de contacto | CntctCode | 11 |
OUSR | Usuarios | USERID | 12 |
OINV | Factura de deudores | DocEntry | 13 |
ORIN | Abono de deudores | DocEntry | 14 |
ODLN | Entrega | DocEntry | 15 |
ORDN | Devuelve | DocEntry | 16 |
ORDR | Pedido de venta | DocEntry | 17 |
OPCH | Factura de proveedores | DocEntry | 18 |
ORPC | Abono de proveedores | DocEntry | 19 |
OPDN | Entrada de mercancías PO | DocEntry | 20 |
ORPD | Devolución de mercancías | DocEntry | 21 |
OPOR | Orden de compra | DocEntry | 22 |
OQUT | Oferta de ventas | DocEntry | 23 |
ORCT | Pago recibido | DocEntry | 24 |
ODPS | Depósito | Depósito | 25 |
OMTH | Historial de conciliación | MthAcctCod, IsInternal, MatchNum | 26 |
OCHH | Registro de cheques | CheckKey | 27 |
OBTF | Asiento en el diario | BatchNum, TransId | 28 |
OBTD | Lista de comprobantes de diario | BatchNum | 29 |
OJDT | Anotación en el diario | TransId | 30 |
OITW | Artículos – Almacén | ItemCode, WhsCode | 31 |
OADP | Preferencias de impresión | PrintId | 32 |
OCLG | Actividades | ClgCode | 33 |
ORCR | Contabilizaciones periódicas | RcurCode, Instancia | 34 |
ONNM | Numeración de documentos | ObjectCode, DocSubType | 35 |
OCRC | Tarjetas de crédito | Tarjeta de crédito | 36 |
OCRN | Códigos de divisas | CódigoCurr | 37 |
OIDX | Códigos IPC | IdexCode | 38 |
OADM | Administración | Código | 39 |
OCTG | Condiciones de pago | GroupNum | 40 |
OPRF | Preferencias | NúmeroFormulario, FirmaUsuario | 41 |
OBNK | Extracto bancario externo recibido | AcctCode, Secuencia | 42 |
OMRC | Fabricantes | Código de empresa | 43 |
OCQG | Propiedades de las tarjetas | CódigoGrupo | 44 |
OTRC | Códigos de asiento | CódigoTrns | 45 |
OVPM | Pagos salientes | DocEntry | 46 |
OSRL | Números de serie | ItemCode, SerialNum | 47 |
OALC | Gastos de carga | AlcCódigo | 48 |
OSHP | Tipos de entrega | TrnspCode | 49 |
OLGT | Unidades de longitud | UnitCode | 50 |
OWGT | Unidades de peso | UnitCode | 51 |
OITB | Grupos de artículos | ItmsGrpCod | 52 |
OSLP | Empleado de ventas | SlpCode | 53 |
OFLT | Informe – Criterios de selección | FormNum, UserSign, FilterName | 54 |
OTRT | Plantillas de contabilización | TrtCode | 55 |
OARG | Grupos aduaneros | CstGrpCode | 56 |
OCHO | Cheques de pago | CheckKey | 57 |
OINM | Revista Whse | TransNum, Instancia | 58 |
OIGN | Entrada de mercancías | DocEntry | 59 |
OIGE | Salida de mercancías | DocEntry | 60 |
OPRC | Centro de costes | PrcCode | 61 |
OOCR | Tasa de coste | OcrCode | 62 |
OPRJ | Códigos de proyecto | PrjCode | 63 |
OWHS | Almacenes | WhsCode | 64 |
OCOG | Grupos de la Comisión | CódigoGrupo | 65 |
OITT | Árbol de productos | Código | 66 |
OWTR | Transferencia de inventario | DocEntry | 67 |
OWKO | Instrucciones de producción | OrderNum | 68 |
OIPF | Costes de desembarque | DocEntry | 69 |
OCRP | Métodos de pago | CrTypeCode | 70 |
OCDT | Pago con tarjeta de crédito | Código | 71 |
OCRH | Gestión de tarjetas de crédito | AbsId, Instancia | 72 |
OSCN | Cliente/Vendedor Cat. No. | CódigoArtículo, CódigoTarjeta, Sustituto | 73 |
OCRV | Pagos a crédito | AbsId, PayId, Instancia | 74 |
ORTT | IPC y FC | FechaTipo, Moneda | 75 |
ODPT | Depósito posfechado | Depósito | 76 |
OBGT | Presupuesto | AbsId | 77 |
OBGD | Presupuesto Cost Assess. Mthd | Código Bgd | 78 |
ORCN | Cadenas minoristas | ChainCode | 79 |
OALT | Plantilla de alertas | Código | 80 |
OALR | Alertas | Código | 81 |
OAIB | Alertas recibidas | AlertCode, UserSign | 82 |
OAOB | Mensaje enviado | AlertCode, UserSign | 83 |
OCLS | Temas de actividad | Código | 84 |
OSPG | Precios especiales para grupos | CardCode, ObjType, ObjKey | 85 |
SPRG | Inicio de la aplicación | LineNum, CódigoUsuario | 86 |
OMLS | Lista de distribución | Código | 87 |
OENT | Tipos de envío | DocEntry | 88 |
OSAL | Saliente | DocEntry | 89 |
OTRA | Transición | DocEntry | 90 |
OBGS | Escenario presupuestario | AbsId | 91 |
OIRT | Precios de interés | Numerador | 92 |
OUDG | Valores predeterminados del usuario | Código | 93 |
OSRI | Números de serie de los artículos | ItemCode, SysSerial | 94 |
OFRT | Plantillas de informes financieros | AbsId | 95 |
OFRC | Categorías de informes financieros | TemplateId, CatId | 96 |
OOPR | Oportunidad | OpprId | 97 |
OOIN | Interés | Num | 98 |
OOIR | Nivel de interés | Num | 99 |
OOSR | Fuente de información | Num | 100 |
OOST | Etapa de oportunidad | Num | 101 |
OOFR | Defecto Causa | Num | 102 |
OCLT | Tipos de actividad | Código | 103 |
OCLO | Reuniones Lugar | Código | 104 |
OISR | Llamadas de servicio | RequestNum | 105 |
OIBT | Nº de lote para el artículo | ItemCode, BatchNum, WhsCode | 106 |
OALI | Artículos alternativos 2 | OrigItem, AltItem | 107 |
OPRT | Socios | PrtId | 108 |
OCMT | Competidores | CompetId | 109 |
OUVV | Validaciones de usuario | IndexID, LineNum | 110 |
OFPR | Período de contabilización | AbsEntry | 111 |
ODRF | Borradores | DocEntry | 112 |
OSRD | Lotes y números de serie | ItemCode, DocType, DocEntry, DocLineNum | 113 |
OUDC | Pantalla de usuario Cat. | CódigoID | 114 |
OPVL | Prestamista – Pelecard | Código | 115 |
ODDT | Jerarquía de las retenciones a cuenta | Numerador | 116 |
ODDG | Grupos de retención a cuenta | Numerador | 117 |
OUBR | Oficinas | Código | 118 |
OUDP | Departamentos | Código | 119 |
OWST | Nivel de confirmación | WstCode | 120 |
OWTM | Plantillas de aprobación | WtmCode | 121 |
OWDD | Docs. para la Confirmación | WddCode | 122 |
OCHD | Cheques para cheques de pago | CheckKey | 123 |
CINF | Información de la empresa | Versión | 124 |
OEXD | Configuración de la carga | ExpnsCode | 125 |
OSTA | Autoridades del impuesto sobre las ventas | Código, Tipo | 126 |
OSTT | Autoridades del impuesto sobre las ventas Tipo | AbsId | 127 |
OSTC | Códigos del IVA | Código | 128 |
OCRY | Países | Código | 129 |
OCST | Estados | País, Código | 130 |
OADF | Formatos de dirección | Código | 131 |
OCIN | Factura de corrección de deudores | DocEntry | 132 |
OCDC | Descuento por pronto pago | Código | 133 |
OQCN | Categorías de consulta | CategoryId | 134 |
OIND | Trato triangular | Código | 135 |
ODMW | Migración de datos | Código | 136 |
OCSTN | ID de estación de trabajo | Código | 137 |
OIDC | Indicador | Código | 138 |
OGSP | Envío de mercancías | Código | 139 |
OPDF | Giro de pago | DocEntry | 140 |
OQWZ | Asistente de consulta | Código | 141 |
OASG | Segmentación de cuentas | AbsId | 142 |
OASC | Categorías de segmentación de cuentas | SegmentId, Código | 143 |
OLCT | Ubicación | Código | 144 |
OTNN | Formularios 1099 | Código de formulario | 145 |
OCYC | Ciclo | Código | 146 |
OPYM | Métodos de pago para el Asistente de pago | PayMethCod | 147 |
OTOB | 1099 Saldo inicial | VendCode, Form1099, Box1099 | 148 |
ORIT | Tipo de interés de la reclamación | Código | 149 |
OBPP | Prioridades de BP | PrioCode | 150 |
ODUN | Cartas de reclamación | LineNum | 151 |
CUFD | Campos de usuario – Descripción | TableID, FieldID | 152 |
OUTB | Tablas de usuarios | NombreTabla | 153 |
OCUMI | Mis opciones de menú | FirmaUsuario , Id_ | 154 |
OPYD | Ejecución del pago | Código | 155 |
OPKL | Lista de selección | AbsEntry | 156 |
OPWZ | Asistente de pago | NúmeroID | 157 |
OPEX | Cuadro de resultados de los pagos | AbsEntry | 158 |
OPYB | Bloque de pago | AbsEntry | 159 |
OUQR | Consultas | IntrnalKey, Qcategory | 160 |
OCBI | Banco Central Ind. | Indicador | 161 |
OMRV | Revalorización de existencias | DocEntry | 162 |
OCPI | Factura de corrección de proveedores | DocEntry | 163 |
OCPV | Corrección de proveedores Anulación de facturas | DocEntry | 164 |
OCSI | Factura de corrección de deudores | DocEntry | 165 |
OCSV | Corrección de deudores Anulación de facturas | DocEntry | 166 |
OSCS | Estados de las llamadas de servicio | statusID | 167 |
OSCT | Tipos de llamadas de servicio | callTypeID | 168 |
OSCP | Tipos de problemas en las llamadas de servicio | prblmTypID | 169 |
OCTT | Modelo de contrato | TmpltName | 170 |
OHEM | Empleados | empID | 171 |
OHTY | Tipos de empleados | typeID | 172 |
OHST | Estatuto de los empleados | statusID | 173 |
OHTR | Motivo del cese | reasonID | 174 |
OHED | Tipos de educación | edType | 175 |
OINS | Tarjeta de equipo de cliente | insID | 176 |
OAGP | Nombre del agente | Código de agente | 177 |
OWHT | Retención a cuenta | WTCode | 178 |
ORFL | Informes 347, 349 y WTax ya visualizados | DocEntry, ReportType, DocType, LineNum, TaxCode, OrdinalNum | 179 |
OVTR | Informe fiscal | AbsEntry | 180 |
OBOE | Letra de cambio para el pago | BoeKey | 181 |
OBOT | Transacción de compraventa | AbsEntry | 182 |
OFRM | Formato de archivo | AbsEntry | 183 |
OPID | Indicador de periodo | Indicador | 184 |
OLOR | Deudas de dudoso cobro | AbsEntry | 185 |
OHLD | Mesa de vacaciones | HldCode | 186 |
OCRB | BP – Cuenta bancaria | País, Código bancario, Cuenta, Código de tarjeta | 187 |
OSST | Estados de la solución de llamada de servicio | Número | 188 |
OSLT | Soluciones de llamadas de servicio | SltCode | 189 |
OCTR | Contratos de servicios | ContractID | 190 |
OSCL | Llamadas de servicio | callID | 191 |
OSCO | Origen de las llamadas de servicio | originID | 192 |
OUKD | Clave de usuario Descripción | NombreTabla, IdClave | 193 |
OQUE | Cola | queueID | 194 |
OIWZ | Asistente para la inflación | AbsEntry | 195 |
ODUT | Términos de la reclamación | TermCode | 196 |
ODWZ | Mago de las reclamaciones | WizardId | 197 |
OFCT | Previsión de ventas | AbsID | 198 |
OMSN | Escenarios MRP | AbsEntry | 199 |
OTER | Territorios | territryID | 200 |
OOND | Industrias | IndCode | 201 |
OWOR | Orden de fabricación | DocEntry | 202 |
ODPI | Anticipo de deudores | DocEntry | 203 |
ODPO | Anticipo A/P | DocEntry | 204 |
OPKG | Tipos de envases | PkgCode | 205 |
OUDO | Objeto definido por el usuario | Código | 206 |
ODOW | Propiedad de los datos – Objetos | Objeto, Subobjeto | 207 |
ODOX | Propiedad de los datos – Excepciones | QueryId, Objeto, SubObjeto | 208 |
209 | |||
OHPS | Posición del empleado | posID | 210 |
OHTM | Equipos de empleados | teamID | 211 |
OORL | Relaciones | OrlCode | 212 |
ORCM | Datos de recomendación | DocEntry | 213 |
OUPT | Árbol de autorización de usuarios | AbsId | 214 |
OPDT | Texto predefinido | AbsEntry | 215 |
OBOX | Definición de caja | BoxCode, ReportType, BosCode | 216 |
OCLA | Estado de la actividad | statusID | 217 |
OCHF | 312 | NombreObjeto | 218 |
OCSHS | Valores definidos por el usuario | IndexID | 219 |
OACP | Periodos Categoría | AbsEntry | 220 |
OATC | Archivos adjuntos | AbsEntry | 221 |
OGFL | Filtro de rejilla | FormID, GridID, UserCode | 222 |
OLNG | Tabla de idiomas del usuario | Código | 223 |
OMLT | Traducción multilingüe | TranEntry | 224 |
OAPA3 | 225 | ||
OAPA4 | 226 | ||
OAPA5 | 227 | ||
SDIS | Interfaz dinámica (cadenas) | FormId, ItemId, ColumnId, Idioma | 229 |
OSVR | Conciliaciones guardadas | código de cuenta | 230 |
DSC1 | Cuentas del banco propio | AbsEntry | 231 |
RDOC | Documento | DocCode | 232 |
ODGP | Conjuntos de parámetros de generación de documentos | AbsEntry | 233 |
OMHD | #740 | Código de alerta | 234 |
OACG | Categoría de cuenta | AbsId | 238 |
OBCA | Códigos de asignación de gastos bancarios | Código | 239 |
OCFT | Operaciones de tesorería – Filas | CFTId | 241 |
OCFW | Partida del flujo de caja | CFWId | 242 |
OBPL | Lugar de trabajo | BPLId | 247 |
OJPE | Calendario de la era local | Código | 250 |
ODIM | Dimensión de la contabilidad de costes | DimCode | 251 |
OSCD | Tabla de códigos de servicio | AbsEntry | 254 |
OSGP | Grupo de Servicios para Brasil | AbsEntry | 255 |
OMGP | Grupo de materiales | AbsEntry | 256 |
ONCM | Código NCM | AbsEntry | 257 |
OCFP | CFOP para Nota Fiscal | ID | 258 |
OTSC | Código CST para Nota Fiscal | ID | 259 |
OUSG | Utilización de la Nota Fiscal | ID | 260 |
OCDP | Fecha límite Procedimiento | ClsDateNum | 261 |
ONFN | Nota Fiscal Numeración | ObjectCode, DocSubType | 263 |
ONFT | Nota Fiscal Categoría Fiscal (Brasil) | AbsId | 264 |
OCNT | Condados | AbsId | 265 |
OTCD | Determinación del código fiscal | AbsId | 266 |
ODTY | BoE Tipo de documento | AbsEntry | 267 |
OPTF | Cartera del BdE | AbsEntry | 268 |
OIST | Instrucción del BdE | AbsEntry | 269 |
OTPS | Parámetro fiscal | AbsId | 271 |
OTFC | Combinación de tipos impositivos | AbsId | 275 |
OFML | Tabla maestra de fórmulas fiscales | AbsId | 276 |
OCNA | Código CNAE | AbsId | 278 |
OTSI | Factura del impuesto sobre las ventas | DocEntry | 280 |
OTPI | Factura fiscal de compra | DocEntry | 281 |
OCCD | Números de declaración aduanera de la carga | CCDNum | 283 |
ORSC | Recursos | ResCode | 290 |
ORSG | Propiedades de los recursos | ResTypCod | 291 |
ORSB | ResGrpCod | ResGrpCod | 292 |
RecordSet | 300 | ||
Puente | 305 | ||
OITR | Conciliación interna | ReconNum | 321 |
OPOS | Datos maestros de TPV | EquipNo | 541 |
ODRF | Giro de transferencia de acciones | DocEntry | 1179 |
OMSG | Configuración del servicio de mensajería | USERID | 10000105 |
OBTN | Números de lote Datos maestros | AbsEntry | 10000044 |
OSRN | Números de serie Datos maestros | AbsEntry | 10000045 |
OIVK | Claves IVL Vs OINM | TransSeq | 10000062 |
OIQR | Contabilización de stocks | DocEntry | 10000071 |
OFYM | Ejercicio Maestro | AbsId | 10000073 |
OSEC | Secciones | AbsId | 10000074 |
OCSN | Serie de certificados | AbsId | 10000075 |
ONOA | Naturaleza de la empresa | AbsId | 10000077 |
RTYP | Lista de tipos de documentos | CÓDIGO | 10000196 |
OUGP | Grupo UM | UgpEntry | 10000197 |
OUOM | Datos maestros de la UM | UomEntry | 10000199 |
OBFC | Configuración del campo de la papelera | AbsEntry | 10000203 |
OBAT | Atributo de ubicación de la papelera | AbsEntry | 10000204 |
OBSL | Subnivel de almacén | AbsEntry | 10000205 |
OBIN | Ubicación de la papelera | AbsEntry | 10000206 |
ODNF | Código DNF | AbsEntry | 140000041 |
OUGR | Grupo de autorización | GroupId | 231000000 |
OEGP | Grupo de correo electrónico | EmlGrpCode | 234000004 |
OGPC | Código de pago del Estado | AbsId | 243000001 |
OIQI | Inventario Saldo inicial | DocEntry | 310000001 |
OBTW | Atributos de lote en la ubicación | AbsEntry | 310000008 |
OLLF | Formato de lista legal | AbsEntry | 410000005 |
OHET | Objeto: HR Transferencia de empleados | TransferID | 480000001 |
OTCX | Determinación del código fiscal | DocEntry | 540000005 |
OPQT | Presupuesto de compra | DocEntry | 540000006 |
ORCP | Plantilla de transacciones periódicas | AbsEntry | 540000040 |
OCCT | Tipo de centro de coste | Código Cct | 540000042 |
OACR | Tipo de devengo | Código | 540000048 |
ONFM | Nota Modelo fiscal | AbsEntry | 540000056 |
OBFI | Indexador de combustible de Brasil | ID | 540000067 |
OBBI | Indexador de bebidas de Brasil | ID | 540000068 |
OCPT | Mesa principal de bañera | AbsEntry | 1210000000 |
OWTQ | Solicitud de traslado de inventario | DocEntry | 1250000001 |
OOAT | Acuerdo general | AbsID | 1250000025 |
OKPI | Indicadores clave de resultados | AbsEntry | 1320000000 |
OTGG | Grupo destinatario | CódigoDestino | 1320000002 |
OCPN | Campaña | CpnNo | 1320000012 |
OROC | Códigos de funcionamiento de Retorno | AbsEntry | 1320000028 |
OPSC | Código fuente del producto | Código | 1320000039 |
ODTP | Tipos de amortización del inmovilizado | Código | 1470000000 |
OADT | Determinación de la cuenta de inmovilizado | Código | 1470000002 |
ODPA | Áreas de amortización del inmovilizado | Código | 1470000003 |
ODPP | Tipo de amortización Pools | Código | 1470000004 |
OACS | Clases de activos | Código | 1470000032 |
OAGS | Grupos de activos | Código | 1470000046 |
ODMC | Criterios de determinación de cuentas de mayor – Inventario | DmcId | 1470000048 |
OACQ | Capitalización | DocEntry | 1470000049 |
OGAR | Reglas avanzadas para cuentas de mayor | AbsEntry | 1470000057 |
OACD | Abono | DocEntry | 1470000060 |
OBCD | Datos maestros de códigos de barras | BcdEntry | 1470000062 |
OINC | Recuento de existencias | DocEntry | 1470000065 |
OEDG | Grupos de descuento | AbsEntry | 1470000077 |
OCCS | Determinación del recuento de ciclos | WhsCode | 1470000092 |
OPRQ | Solicitud de compra | DocEntry | 1470000113 |
OWLS | Flujo de trabajo – Detalles de la tarea | TaskID | 1620000000 |
Deja tu comentario
Debe iniciar sesión para escribir un comentario.