Ir al contenido

Integraciones 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.
  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.