Ir al contenido

Integraciones Para importacion de Nomina

Flujos de Integración con Microsoft Sharepoint

Sección titulada «Flujos de Integración con Microsoft Sharepoint»
  • El sistema de nómina se integrará con Microsoft SharePoint para almacenar y gestionar documentos relacionados con la nómina, como recibos de pago y otros documentos relevantes.

  • La integración se realizará utilizando la API de Microsoft Graph, que permite interactuar con los servicios de Microsoft 365, incluido SharePoint.

  • Se implementará un proceso automatizado que subirá los documentos de nómina a una biblioteca específica en SharePoint, para facilitar su acceso y gestión.

Diagrama de Integración con Microsoft SharePoint

Cron Job Para obtener la Informacion de Nomina

Sección titulada «Cron Job Para obtener la Informacion de Nomina»
  • Se desarrollará un proceso automatizado (Job) que se ejecutará periódicamente para obtener la información de nómina desde el sharepoint.

  • La información obtenida de la nomina se almacenará en Business Central.

Integracion y Validacion de Documentos de Nomina

Sección titulada «Integracion y Validacion de Documentos de Nomina»
  • La integracion obtendra los datos de nomina desde el sharepoint y los insertara en los diarios de pago de Business Central.

desde Business Central se permitirá importar archivos de nómina en formato TXT o CSV mediante dos mecanismos:

El archivo debe respetar una estructura previamente definida, donde cada línea representa un asiento contable y contiene información como:

  • Empresa.
  • Tipo de diario.
  • Número de documento.
  • Tipo de cuenta
  • Número de cuenta.
  • Fechas contables.
  • Importes (Debe / Haber).
  • Tipo de importe (Debe o Haber).
  • Tipo de Cuentra Contrapartida (cuando aplique).
  • Cuenta contrapartida (cuando aplique).
  • Método de pago (cuando aplica).
  • Dimensiones.

Código de la empresa en Business Central. Puede ser un codigo alfanumerico con espacios y caracteres especiales, pero debe ser único para cada empresa.

Identificador del tipo de diario en Business Central. Solo puede ser numerico.

  • Tipos de diario:
    • 0 = Diario General
    • 1 = Diario de Pagos

Número que identifica el documento en Business Central. Puede ser alfanumérico.

Indica el tipo de cuenta en Business Central. Solo puede ser numerico.

  • Tipos de cuenta:
    • 0 = Cuenta Contable
    • 1 = Cliente
    • 2 = Proveedor
    • 3 = Cuenta Bancaria
    • 4 = Activo Fijo
    • 5 = Socio IC
    • 6 = Empleado
    • 7 = Cuenta de Asignacion

Número que identifica la cuenta en Business Central. Puede ser alfanumérico.

Fecha en formato ISO 8601 (YYYY-MM-DD) que indica la fecha contable del asiento.

Importe numérico que indica el monto del asiento. El importe debe ser positivo.

Indica si el importe corresponde al Debe o al Haber. Solo puede ser numerico.

  • Tipos de importe:
    • 1 = Debe
    • 2 = Haber

Tipo de Cuenta Contrapartida (cuando aplique)

Sección titulada «Tipo de Cuenta Contrapartida (cuando aplique)»

Indica el tipo de cuenta contrapartida en Business Central. Solo puede ser numerico.

  • Tipos de cuenta contrapartida:
    • 0 = Cuenta Contable
    • 1 = Cliente
    • 2 = Proveedor
    • 3 = Cuenta Bancaria
    • 4 = Activo Fijo
    • 5 = Socio IC
    • 6 = Empleado
    • 7 = Cuenta de Asignacion

Número que identifica la cuenta contrapartida en Business Central. Puede ser alfanumérico.

Indica el método de pago utilizado en la transacción. Solo puede ser numerico.

Las dimensiones son atributos adicionales que se pueden asignar a los asientos contables para proporcionar información adicional sobre la transacción. Pueden incluir información como el departamento, el proyecto, la ubicación, entre otros. Las dimensiones se representan como pares de nombre y valor en el archivo de nómina.

  1. URL del ambiente de Microsoft SharePoint
  2. Credenciales OAuth 2.0
    • Client ID (Aplicación ID): Identificador de la aplicación registrada
    • Client Secret: Clave secreta de la aplicación.
  3. Permisos y alcances (Scopes)
  4. Drive ID
    • Identificador del drive de SharePoint donde se encontrara los documentos de nómina.
    • Ejemplo: b!1234567890abcdef1234567890abcdef!123
  5. Site ID
    • Identificador del sitio de SharePoint donde se encontrara los documentos de nómina.
    • Ejemplo: 12345678-90ab-cdef-1234-567890abcdef
  6. Folder ID
    • Identificador de la carpeta dentro del drive de SharePoint donde se encontrara los documentos de nómina.
    • Ejemplo: 01ABCD2345678901234567890ABCDEFF

Obtener Token de Acceso para Microsoft Graph API

Sección titulada «Obtener Token de Acceso para Microsoft Graph API»
POST
'https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token'
'Content-Type: application/x-www-form-urlencoded'
body
{
client_id={clientId}
scope= 'https://graph.microsoft.com/.default'
client_secret='{{clientSecret}}'
grant_type='client_credentials'
}
GET
https://graph.microsoft.com/v1.0/sites/virtualofgroup.sharepoint.com,c887b431-1d21-42e6-ae2e-a81e165fcacd,ddaa5855-305f-4f94-9b50-f08afd1dbec8/drives'
--header 'Accept: application/json'
--header 'Authorization: Bearer {token}'

Datos obtenidos

{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives",
"value": [
{
"createdDateTime": "2026-03-06T14:06:58Z",
"description": "",
"id": "b!MbSHyCEd5kKuLqgeFl_KzVVYqt1fMJRPm1Dwiv0dvsjoqFOFf9ckRbXgC62z82Eu",
"lastModifiedDateTime": "2026-03-06T14:06:58Z",
"name": "Nomina",
"webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba/Nomina",
"driveType": "documentLibrary",
"createdBy": {
"user": {
"email": "admin@virtualofgroup.onmicrosoft.com",
"id": "ee769023-dc21-4cd1-9661-2478d55f5c03",
"displayName": "Virtual Office Group, C.A"
}
},
"owner": {
"group": {
"email": "vog-prueba@virtualofgroup.onmicrosoft.com",
"id": "83d0b60b-c8f1-4d50-a2e5-7df7f50ebf2c",
"displayName": "Propietarios vog-prueba"
}
},
"quota": {
"deleted": 1348596,
"remaining": 27487771044375,
"state": "normal",
"total": 27487790694400,
"used": 18301429
}
}
]
}

Campos de respuestas

NombreTipo de datoDescripción
@odata.contextstringURL del contexto de la respuesta.
valuearrayLista de unidades de SharePoint (drives) disponibles en el sitio.
createdDateTimestringFecha y hora de creación de la unidad de SharePoint.
descriptionstringDescripción de la unidad de SharePoint.
idstringIdentificador único de la unidad de SharePoint.
lastModifiedDateTimestringFecha y hora de la última modificación de la unidad de SharePoint.
namestringNombre de la unidad de SharePoint.
webUrlstringURL de la unidad de SharePoint.
driveTypestringTipo de unidad de SharePoint (por ejemplo, “documentLibrary”).
createdByobjectInformación sobre el usuario que creó la unidad de SharePoint.
ownerobjectInformación sobre el propietario de la unidad de SharePoint.
quotaobjectInformación sobre la cuota de almacenamiento de la unidad de SharePoint.
GET
'https://graph.microsoft.com/v1.0/sites/virtualofgroup.sharepoint.com:/sites/vog-prueba'
'Accept: application/json'
'Authorization: Bearer {token}'

Datos obtenidos

{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites/$entity",
"createdDateTime": "2025-09-12T19:28:35.603Z",
"description": "",
"id": "virtualofgroup.sharepoint.com,c887b431-1d21-42e6-ae2e-a81e165fcacd,ddaa5855-305f-4f94-9b50-f08afd1dbec8",
"lastModifiedDateTime": "2026-03-22T17:52:06Z",
"name": "vog-prueba",
"webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba",
"displayName": "vog-prueba",
"root": {},
"siteCollection": {
"hostname": "virtualofgroup.sharepoint.com"
}
}

campos de respuestas

NombreTipo de datoDescripción
@odata.contextstringURL del contexto de la respuesta.
idstringIdentificador único del sitio de SharePoint.
namestringNombre del sitio de SharePoint.
webUrlstringURL del sitio de SharePoint.
displayNamestringNombre para mostrar del sitio de SharePoint.
createdDateTimestringFecha y hora de creación del sitio de SharePoint.
lastModifiedDateTimestringFecha y hora de la última modificación del sitio de SharePoint.
descriptionstringDescripción del sitio de SharePoint.
rootobjectInformación sobre la raíz del sitio de SharePoint.
siteCollectionobjectInformación sobre la colección de sitios de SharePoint.

Datos obtenidos

{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(driveItem)",
"value": [
{
"@odata.etag": "\"{CC99933F-4760-4DCB-B9CA-44069C2F8DBD},1\"",
"id": "01QMYQJ7R7SOM4YYCHZNG3TSSEA2OC7DN5",
"name": "Activos fijos",
"webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba/Facturas/Activos%20fijos",
"folder": {
"childCount": 0
}
},
]
}

Campos de respuestas

NombreTipo de datoDescripción
@odata.contextstringURL del contexto de la respuesta.
valuearrayLista de carpetas disponibles en la unidad de SharePoint.
@odata.etagstringETag de la carpeta, utilizado para control de concurrencia.
idstringIdentificador único de la carpeta en SharePoint.
namestringNombre de la carpeta en SharePoint.
webUrlstringURL de la carpeta en SharePoint.
folderobjectInformación adicional sobre la carpeta, como el número de elementos hijos (childCount).
PUT
https://graph.microsoft.com/v1.0/drives/{drive_id}/items/{folder_id}:/{nombre_archivo}:/content
Authorization: Bearer {token}
Content-Length: {tamaño del archivo en bytes}
Content-Range: bytes 0-{tamaño del archivo - 1}/{tamaño total del archivo}
Content-Type: application/octet-stream.
body{
data-binary '@/C:/Users/programador02/AppData/Local/Postman/app-12.3.0/ffmpeg.dll'
}

Datos obtenidos

{
"id": "01QMYQJ7R7SOM4YYCHZNG3TSSEA2OC7DN5",
"name": "ffmpeg.dll",
"webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba/Facturas/Activos%20fijos/ffmpeg.dll",
"size": 123456
}

Campos de respuestas

NombreTipo de datoDescripción
idstringIdentificador único del archivo en SharePoint.
namestringNombre del archivo en SharePoint.
webUrlstringURL del archivo en SharePoint.
sizeintegerTamaño del archivo en bytes.

Para archivos grandes (imágenes de alta resolución, videos o PDFs extensos), el archivo debe dividirse en trozos. Cada trozo debe ser múltiplo de 320 KB (excepto el último).

PUT
https://graph.microsoft.com/v1.0/drives/{drive_id}/items/{folder_id}:/{nombre_archivo}:/createUploadSession
Authorization: Bearer {token}
Content-Type: application/octet-stream.
Content-Length: {tamaño del archivo en bytes}
Content-Range: bytes 0-{tamaño del archivo - 1}/{tamaño total del archivo}
body{
data-binary '@/C:/Users/programador02/AppData/Local/Postman/app-12.3.0/ffmpeg.dll'
}

Datos obtenidos

{
"id": "01QMYQJ7R7SOM4YYCHZNG3TSSEA2OC7DN5",
"name": "ffmpeg.dll",
"webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba/Facturas/Activos%20fijos/ffmpeg.dll",
"size": 123456
}

Campos de respuestas

NombreTipo de datoDescripción
idstringIdentificador único del archivo en SharePoint.
namestringNombre del archivo en SharePoint.
webUrlstringURL del archivo en SharePoint.
sizeintegerTamaño del archivo en bytes.