Tabla OPRJ en SAP Business One (Códigos de proyecto)

OPRJ es la tabla de SAP Business One de códigos de proyecto: una fila por proyecto con su código, nombre, fechas de validez e indicador de activo. Las líneas de asientos (JDT1.Project) y las líneas de documentos (INV1.Project) guardan el código de proyecto, así que OPRJ es el maestro detrás de los reportes de resultados y costos por proyecto.

Campos clave de OPRJ

CampoQué contiene
PrjCodeCódigo del proyecto, la clave. JDT1.Project, INV1.Project y OINV.Project apuntan a él.
PrjNameNombre del proyecto.
ValidFromFecha de validez desde.
ValidToFecha de validez hasta.
ActiveY = activo, N = inactivo.
LockedY = bloqueado, N = no bloqueado.
UserSignUsuario que creó el proyecto. Se une con OUSR.USERID.
UserSign2 / UpdateDateUsuario y fecha de la última actualización.
DataSourceCómo se creó la fila, por ejemplo O = DI API, S = Service Layer.

Cómo se relaciona OPRJ con otras tablas

OPRJ es un dato maestro sin tabla de líneas. El código de proyecto se guarda en las líneas de asientos (JDT1.Project), en las líneas de documentos (INV1.Project y las demás tablas de líneas), en las cabeceras de documentos (OINV.Project) y como valor predeterminado en el socio de negocios (OCRD.ProjectCod).

Joins habituales

  • JDT1 T0 INNER JOIN OPRJ T1 ON T1.PrjCode = T0.Project (proyecto de la línea del asiento)
  • JDT1 T0 INNER JOIN OACT T2 ON T2.AcctCode = T0.Account (cuenta de mayor)
  • INV1 T3 INNER JOIN OPRJ T1 ON T1.PrjCode = T3.Project (proyecto de la línea de la factura)

Cuándo se usa la tabla OPRJ

Use OPRJ para el estado de resultados por proyecto desde JDT1, los ingresos por proyecto desde las líneas de factura y para encontrar contabilizaciones en proyectos inactivos o con la fecha ValidTo ya vencida.

Consulta de ejemplo: debe, haber y saldo por proyecto en este año

SQL Server

SELECT T1.PrjCode, T1.PrjName, SUM(T0.Debit) AS Debit, SUM(T0.Credit) AS Credit,
  SUM(T0.Debit - T0.Credit) AS Balance
FROM JDT1 T0
INNER JOIN OPRJ T1 ON T1.PrjCode = T0.Project
WHERE YEAR(T0.RefDate) = YEAR(GETDATE())
GROUP BY T1.PrjCode, T1.PrjName
ORDER BY T1.PrjCode

SAP HANA (nombres de columna entre comillas dobles)

SELECT T1."PrjCode", T1."PrjName", SUM(T0."Debit") AS "Debit", SUM(T0."Credit") AS "Credit",
  SUM(T0."Debit" - T0."Credit") AS "Balance"
FROM JDT1 T0
INNER JOIN OPRJ T1 ON T1."PrjCode" = T0."Project"
WHERE YEAR(T0."RefDate") = YEAR(CURRENT_TIMESTAMP)
GROUP BY T1."PrjCode", T1."PrjName"
ORDER BY T1."PrjCode"

Pegue cualquiera de las dos versiones en Herramientas → Consultas → Generador de consultas. ¿Necesita el otro dialecto para su propia consulta? Use el conversor de SQL a HANA.

Error frecuente: Proyecto en la cabecera pero no en las líneas

El proyecto de la cabecera de un documento y el de cada línea pueden diferir, y el asiento toma el proyecto de las líneas. Un reporte sobre OINV.Project puede no coincidir con un reporte sobre JDT1.Project. Para cifras financieras por proyecto, reporte sobre JDT1. Vea Consulta de movimientos de cuentas de mayor.

Consultas listas que usan OPRJ

Preguntas sobre la tabla OPRJ

¿Dónde se guarda el código de proyecto en un asiento?

En cada línea, en JDT1.Project, que se une con OPRJ.PrjCode.

¿Un código de proyecto puede vencer?

Sí. OPRJ.ValidFrom y ValidTo definen el período de validez y Active lo marca como activo o inactivo.

¿Hay un proyecto predeterminado por socio de negocios?

Sí, OCRD.ProjectCod apunta a OPRJ.

Tablas relacionadas

JDT1 (Líneas del asiento contable) · OJDT (Asiento contable (cabecera)) · INV1 (Factura de clientes (líneas)) · OOCR (Normas de reparto (centros de costo)) · buscar todas las tablas de SAP Business One

Fuentes: Documentación y SDK de SAP Business One (referencia de tablas de base de datos de DI API), SAP Help Portal.

¿Listo para empezar?

Cuéntenos lo que necesita. Recibirá una respuesta técnica clara, un alcance definido y un precio fijo, normalmente en 24 horas.