Está en la página 1de 28

Firma Digital Electrónica

Proceso de firma digital con Meta4


Noviembre 2019

COPYRIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 1 de 28 1
Firma Digital Electrónica

Confidencialidad de este documento


Este documento es propiedad de Meta4, y la información que contiene es estrictamente
confidencial.

Queda terminantemente prohibido reproducir este documento en su totalidad o en parte y


por cualquier medio, así como su cesión a un tercero, sin autorización previa y salvo a
efectos de valoración por parte del cliente.

Está expresamente prohibido transmitir este documento a un tercero, aunque sea a


efectos de valoración por parte del cliente, sin la autorización previa y por escrito de
Meta4.

El compromiso de confidencialidad tendrá carácter vinculante por tiempo indefinido, por lo


que el cliente debe respetarlo una vez finalizado el periodo de toma de decisiones.

© 2019 Meta4 Spain, S.A. Quedan reservados todos los derechos.

ADVERTENCIA: este documento está protegido por las leyes de propiedad intelectual e
industrial y por tratados internacionales. Solo se permite el uso de esta documentación en
relación con las Soluciones Meta4, y todo uso no autorizado de la misma será perseguido
con arreglo a la legislación vigente. Se prohíbe su reproducción, modificación o distribución
sin permiso del titular.

Meta4 Spain, S.A.


Centro Europa Empresarial
Edificio Roma
C/ Rozabella, 8
Ctra. de La Coruña, km. 24,200
28290 Las Rozas, Madrid
ESPAÑA
http://www.meta4.com

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 2 de 28 2
Firma Digital Electrónica

ÍNDICE
ÍNDICE ........................................................................................................... 3
1 INTRODUCCIÓN ....................................................................................... 4
1.1 DESCRIPCIÓN GENERAL ................................................................................ 4
1.1.1 ¿Qué es la firma digital? ..................................................................... 4
1.1.2 ¿Qué se necesita para firmar un documento oficial? ............................... 4
1.2 GESTIÓN DOCUMENTAL Y FIRMA DIGITAL EN PEOPLENET .......................................... 5
1.3 SISTEMAS EXTERNOS: SERVICIOS DE FIRMA Y PORTAFIRMAS ...................................... 5
1.4 ARQUITECTURA .......................................................................................... 6
2 VISUALIZACIÓN DE INFORMACIÓN DE FIRMA DE DOCUMENTOS ..................... 8
3 CONFIGURACIÓN DE PORTAFIRMAS ............................................................ 9
3.1 IMPLEMENTAR META4OBJECT DE PORTAFIRMAS ..................................................... 9
3.2 ACTIVAR EL PORTAFIRMAS EXTERNO EN PEOPLENET .............................................. 12
4 PROCESO DE FIRMA EN PEOPLENET .......................................................... 14
4.1 DESDE UN PROCESO DE NEGOCIO (WORKFLOW) .................................................. 14
4.1.1 Proceso de firma ............................................................................. 15
4.2 DESDE UN META4OBJECT ............................................................................ 18
4.2.1 Solicitar la firma de un documento..................................................... 18
4.2.2 Generación del XML de información de firmantes
(SRTC_DMS_SIGNERS_INFO) ....................................................................... 20
4.2.3 Ejemplo de uso ............................................................................... 23
4.2.4 Recibir la notificación de firma de un documento.................................. 24
4.2.5 Cancelar un proceso de firma ............................................................ 24
4.2.6 Reiniciar un proceso de firma ............................................................ 25
4.2.7 Borrar un proceso de firma ............................................................... 26
4.2.8 Obtener el estado de firma de un documento ...................................... 27
4.2.9 Establecer la referencia externa de un documento................................ 27
4.2.10 Grabar el documento firmado ............................................................ 28

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 3 de 28 3
Firma Digital Electrónica

1 INTRODUCCIÓN
1.1 DESCRIPCIÓN GENERAL
La importancia de la firma digital viene dada por el hecho de que permite pasar de los
documentos en papel a documentos electrónicos de una forma sencilla y legalmente
reconocida. Esto, en procedimientos administrativos, se considera un aspecto fundamental
para agilizar los trámites y ahorrar costes. Permitirá automatizar procesos y facilitar el
acceso a los documentos a todos los interlocutores del mismo.

1.1.1 ¿Qué es la firma digital?

Es un mecanismo electrónico que, aplicado sobre un mensaje o documento, permite:

• Saber quién ha firmado el mensaje (Autenticidad).

• Garantizar que el mensaje no ha sido modificado (Integridad).

• Garantizar que el firmante no pueda negar su autoría (No Repudio).

La firma digital tiene la misma validez jurídica que la firma manuscrita.

1.1.2 ¿Qué se necesita para firmar un documento oficial?

Un certificado instalado en el ordenador o en una tarjeta que se introduce en el mismo


(ejemplo: DNI electrónico). Este certificado lo emite una autoridad de certificación
(ejemplo: FNMT).

Para llevar a cabo la firma de documentos, los firmantes suelen conectarse a través de
Internet a una interfaz Web y firmar los documentos en formato digital, con el único
requisito de disponer de un certificado digital que acredite su identidad, garantizando la
autenticidad de sus actos y la confidencialidad de las comunicaciones.

De forma general, los requisitos de un Sistema que gestione documentos y permita


firmarlos podrían ser: poder enviar a firmar los documentos generados en procesos
funcionales, gestión y mantenimiento de los documentos (originales, firmados, etc.),
visualización de los documentos y búsqueda por metainformación, poder añadir firma a
documentos existentes, notificar a los responsables de firma, poder firmar documentos,
comprobar validez de la firma de un documento, conocer si un documento está pendiente
de firma, etc.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 4 de 28 4
Firma Digital Electrónica

1.2 GESTIÓN DOCUMENTAL Y FIRMA DIGITAL EN PEOPLENET


La plataforma tecnológica de PeopleNet ofrece servicios de firma digital (solicitud, rechazo,
cancelación, visualización del estado de firma…) sobre los documentos almacenados en el
gestor documental. La ejecución de la firma se delega en sistemas externos (software)
contra los cuales PeopleNet ofrecerá unas interfaces genéricas que deberán adaptarse
siguiendo una metodología definida.

Los documentos firmados se almacenarían en el Gestor documental de PeopleNet.

1.3 SISTEMAS EXTERNOS: SERVICIOS DE FIRMA Y


PORTAFIRMAS
Representan una interfaz destinada a facilitar a las organizaciones el uso de la firma
electrónica reconocida de documentos procedentes de diferentes sistemas de información
independientes, con la consiguiente agilización de la actividad administrativa.

Los servicios de firma suelen proveer un API estándar para facilitar a los desarrolladores la
integración de los diferentes aplicativos. Se suelen Integrar con los sistemas de
información mediante servicios Web y XML (SOAP) y representan las operaciones básicas
de firma de documentos o comprobación de firma.

Los sistemas Portafirmas suelen interactuar con los servicios de firma para realizar las
operaciones básicas, pero además se ocupan de la gestión de la firma de documentos.
Esta función consiste en ofrecer una interfaz Web que representará el “escritorio de firma”.
Las responsabilidades de estos sistemas serían:

• Visualizar los documentos pendientes de firma, los que estaban firmados


y/o se rechazaron.

• Ofrecer una interfaz de usuario para firmar o rechazar los documentos.


Para ello realiza la validación de los certificados de los firmantes: uso de
certificados digitales de cualquier prestador reconocido, como el DNI
electrónico o el certificado de persona física de la FNMT-RCM.

• Suministrar políticas de firma o tipos de firma (firma paralela o secuencial):


se permite definir firmas de manera secuencial (un usuario tiene que
esperar a que otro firme) o paralela (cada usuario puede firmar el
documento sin un orden establecido); firma simple o jerarquizada; firma en
bloque, etc.

• Simplicidad a la hora de introducir la firma. Proporciona un repositorio


centralizado de los documentos a firmar, independientemente de cuál sea
su origen.

• Proveer una interfaz para verificación de firmas de documentos.

• Notificar a los responsables de firma que tienen documentos pendientes de


firma.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 5 de 28 5
Firma Digital Electrónica

1.4 ARQUITECTURA
En este apartado se describe la arquitectura general del proceso de firma en PeopleNet.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 6 de 28 6
Firma Digital Electrónica

En el proceso de firma intervienen las siguientes entidades:

Meta4Object de Firma Digital. Meta4Object a utilizar desde los distintos procesos


funcionales de PeopleNet que quieran integrar un proceso de firma. Permite iniciar el
proceso de firma de un documento, cancelar el proceso de firma, además de gestionar
la información de firma asociada a un documento: firmantes, estados de firma… Se
corresponde con el Meta4Object SRTC_DMS_SIGNATURES_EXT_SYSTEM.Gestor
Documental. Contiene los documentos que se generan o almacenan desde los
distintos procesos funcionales de Peoplenet y para los documentos firmados se tiene el
documento con la firma. Se corresponde con el Meta4Object
DMS_DOC_MANAGEMENT.

1. Interfaz de Portafirmas. Interfaz que ofrece la funcionalidad genérica de firma:


enviar a firmar un documento, notificar firma/rechazo de un documento, verificar
firma, etc. Esta interfaz está representada por el Meta4Object
SRTC_DS_DESKTOP_NEW, que contiene los métodos necesarios para ofrecer la
funcionalidad de servicio de firma con un sistema externo pero sin implementar.
Cada vez que se quiera soportar un Portafirmas nuevo, se deberá crear un
Meta4Object específico que implemente sus métodos.

2. Servicio externo. Representa al servicio de firma de terceros.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 7 de 28 7
Firma Digital Electrónica

2 VISUALIZACIÓN DE INFORMACIÓN DE FIRMA DE


DOCUMENTOS
PeopleNet muestra información sobre cada documento inmerso en un proceso de firma
digital a través de la pantalla de Otros datos del include tecnológico para la gestión
documental.

Puede encontrar más detalles sobre la información mostrada en la pantalla Otros Datos
en la ayuda en línea de PeopleNet.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 8 de 28 8
Firma Digital Electrónica

3 CONFIGURACIÓN DE PORTAFIRMAS
Para integrar PeopleNet con un sistema de portafirmas de terceros, es necesario realizar
ciertos desarrollos que permitan la comunicación (envío de documentos para su firma,
recepción de la firma, etc.) con dicho portafirmas.

A continuación se describen las acciones necesarias para llevar a cabo dicha integración.

3.1 IMPLEMENTAR META4OBJECT DE PORTAFIRMAS


El primer paso a realizar es crear un Meta4Object específico que se encargue de
comunicarse con el sistema de firma de terceros con el que se desee trabajar. Este
Meta4Object será la implementación del Meta4Object interfaz de portafirmas
proporcionado por Meta4 (SRTC_DS_DESKTOP_NEW), heredando de él. Para ello abra el
Meta4Object SRTC_DS_DESKTOP_NEW y haga clic en Archivo  Nuevo Meta4Object
de herencia e indique el nombre del nuevo Meta4Object. Dicho nombre debe cumplir con
la siguiente nomenclatura: SRTC_DS_[Nombre_del_portafirmas]_Desktop, donde
Nombre_del_portafirmas será un identificador del portafirmas con el que se quiere
trabajar.

Una vez creado el Meta4Object de herencia, se tendrán una serie de métodos para enviar
documentos a firmar y recibir notificaciones del portafirmas.

A continuación se describen aquellos métodos que se deberá sobrescribir para adaptar su


funcionamiento al portafirmas externo.

Enviar documento a firmar: ADD_DOCUMENT_TO_SIGN


Este método es invocado desde el Meta4Object de firma y recibirá la petición de firma de
un documento que deberá enviarse al portafirmas externo. Recibe los siguientes
argumentos:

Argumento Descripción

ARG_ID_DOC Identificador del documento que se envía a firmar.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 9 de 28 9
Firma Digital Electrónica

Argumento Descripción

Versión del documento que se envía a firmar. No es


ARG_ID_DOC_VER
obligatorio. Puede venir vacío

Este método debe implementar la lógica necesaria para solicitar la firma del documento
indicado en los parámetros al Portafirmas de terceros con el que se trabaje.

Devolverá M4_ERROR o M4_SUCCESS en función de cómo ha ido la operación.

• En caso de error se deberá devolver en la propiedad ADD_DOC_TO_SIGN_ERROR


la cadena con el error de la operación.

• En caso de éxito se deberá rellenar la propiedad ID_EXTERNAL_REFERENCE con la


referencia externa al documento en el portafirmas externo. Esta referencia servirá
para identificar el documento en los procesos de notificaciones de estado del
portafirmas externo.

Cancelar firma: CANCEL_SIGNATURE


Método para cancelar la firma en el sistema externo. Llega como argumento, aparte del
documento, la referencia de la firma en el sistema externo.

Argumento Descripción

ARG_ID_DOC Identificador del documento que se ha firmado

ARG_ID_DOC_VERSION Identificador de la versión del documento

ARG_ID_ORGANIZATION Identificador de la sociedad

ARG_EXTERNAL_REFERENCE Referencia del documento en el sistema externo

ARG_CANCEL_REASON Texto con la razón de la cancelación.

Borrar firma: DELETE_SIGNATURE


Método para borrar la firma en el sistema externo. Llega como argumento, aparte del
documento, la referencia de la firma en el sistema externo.

Argumento Descripción

ARG_ID_DOC Identificador del documento que se ha firmado

ARG_ID_DOC_VERSION Identificador de la versión del documento

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 10 de 28 10
Firma Digital Electrónica

Argumento Descripción

ARG_ID_ORGANIZATION Identificador de la sociedad

ARG_EXTERNAL_REFERENCE Referencia del documento en el sistema externo

Notificar estado de firma: NOTIFY_SIGNATURE_STATE


Este método debe implementar la lógica para actualizar en PeopleNet el estado de un
documento que esté inmerso en un proceso de firma.

A partir de la referencia externa del documento habrá que cargar la información de firma
del documento, modificar la información de firma, grabar el documento firmando si
corresponde, y notificar el fin de firma si procede.

Se utilizará el Meta4Object SRTC_DMS_SIGNATURES_EXT_SYSTEM para trabajar con la


información de firma.

• Para cargar la información de un documento en proceso de firma a partir de la


referencia externa utilice
SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_SIGNATURES_API.LOAD_SIG
N_INFO_BY_EXT_REFER(…)

• Para modificar la información de firma de los firmantes (estado de firma , fecha de


firma, comentarios…), modifique la información sobre el nodo
SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_DS_NEEEDE_SIGNERS

• Para modificar la información de firma general del documento (estado de firma…)


utilice el nodo SRTC_DS_VIDSIGNER!SRTC_DS_VIDSIGNER_DOCINFO

• Para grabar la información de firma actualizada utilice


SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_DS_DOC_INFO.PERSIST_TRE
E()

• Para grabar el documento firmado en el gestor documental utilice


DMS_DOC_MANAGEMENT!DMS_DOC_MANAGEMENT_API.API_SET_DOC_VERS_C
ONTENT(…)

• Para notificar el final de firma utilice el método


SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_SIGNATURES_API.NOTIFY_E
ND_SIGN(..)

Argumento Descripción

ARG_EXTERNAL_REFERENCE Referencia del documento en el sistema externo

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 11 de 28 11
Firma Digital Electrónica

Argumento Descripción

ARG_STATE Estado

ARG_STATE_DESCRIPTION Descripción del estado

3.2 ACTIVAR EL PORTAFIRMAS EXTERNO EN PEOPLENET


PeopleNet puede soportar diversas aplicaciones Portafirmas externos, pero únicamente
uno de ellos puede estar activo a la vez. Para poder trabajar con un determinado
Portafirmas se debe marcar como activo.

Para dar de alta y activar un nuevo portafirmas haga clic en la opción de menú
Configuración Portafirmas del Gestor documental.

A continuación introduzca la información relativa al nuevo portafirmas.

Para ello seleccione la opción Nuevo e introduzca los datos solicitados para indicar a
PeopleNet cómo comunicarse con el Portafirmas de terceros. Los datos necesarios son los
siguientes:

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 12 de 28 12
Firma Digital Electrónica

1. ID Meta4Object: identificador del Meta4Object de implementación del


portafirmas de terceros (véase el apartado Implementar Meta4Object de
Portafirmas)

2. URL implementación: permite almacenar la URL en la que se implementa el


portafirmas

3. Nombre de la plataforma: nombre del portafirmas de terceros

4. Establecer como portafirmas activo: indica si es el portafirmas activo o no.


Debe ser 1 si es el activo.

5. Parámetro ID Documento: identificador del parámetro bajo el que el


portafirmas recogerá el identificador del documento para el que solicita la firma.

6. Parámetro URL éxito: identificador del parámetro bajo el que el portafirmas


recogerá la URL a redirigirse en caso de éxito.

7. Parámetro URL error: identificador del parámetro bajo el que el portafirmas


recogerá la URL a redirigirse en caso de error.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 13 de 28 13
Firma Digital Electrónica

4 PROCESO DE FIRMA EN PEOPLENET


4.1 DESDE UN PROCESO DE NEGOCIO (WORKFLOW)
Desde un proceso de negocio funcional se puede solicitar la firma de un documento,
añadiendo un estado de firma, y gestionar el resultado de la firma, tal y como se muestra
en la imagen. A continuación se describe cómo utilizar el estado de firma.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 14 de 28 14
Firma Digital Electrónica

4.1.1 Proceso de firma

Para integrar el proceso de firma en el proceso de negocio debe hacer lo siguiente:

1. Generar un nuevo estado automático, por ejemplo “Firmar”.

2. Asociar al estado la tarea de firma: BP_DS_REQUEST_SIGNATURE_AUT.

3. Rellenar los parámetros de la tarea. A continuación se describen los parámetros:

Parámetro Descripción

Argumentos para identificar el documento a firmar (obligatorios)

ID_DOC Identificador del documento a firmar

ID_DOC_VER Identificador de la versión del documento a firmar

Argumentos para sacar las personas a firmar. Hay que rellenar obligatoriamente los
roles o la regla.

Lista de roles que deben cumplir los usuarios a firmar.


ROLES
Separada por #

Regla de usuario. A partir de la regla se obtiene la lista de


RULE
usuarios que deben firmar

Parámetros de la regla. Separados por #. Las cadenas deben


PARAM_RULE
ir entre comillas simples. Ejemplo: ‘cadena’#11#...

Política de asignación del proceso de negocio. Indica el orden


POLICY
de las personas a firmar.

Parámetros de la política de asignación. Separados por #. Las


cadenas deben ir entre comillas simples. Todas las políticas
PARAM_POL
tienen como primer argumento el usuario. Ese argumento no
hay que pasarlo.

Argumentos adicionales

Modo de firma:

0  Firma individual. Sólo firma el primero.

SIGN_MODE 1 Todos en paralelo (múltiples firmantes realizan firmas


distintas)

2  Firma en serie. Firma de uno en uno según un orden.


múltiples firmantes realizan firma sobre firma

Importancia:
RELEVANCE
1 Alta, 2 Media, 3 Baja

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 15 de 28 15
Firma Digital Electrónica

Parámetro Descripción

Opcional. Si viene vacío, por defecto será importancia media.


No utilizada.

Fecha límite para firmar el documento (opcional; si viene


DEADLINE
vacío no hay límite). No utilizada.

Otros posibles parámetros adicionales que pudieran


OTHER_PARAMS
necesitarse cuando se trabaje con procesos de firma
externos.

Ejemplo:

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 16 de 28 16
Firma Digital Electrónica

4. Generar tres transiciones que salgan del estado para gestionar los casos de firma
correcta, firma rechazada y firma con error. Cada transición deberá tener asociado
uno de los siguientes eventos:

ID
Even Nombre Evento Descripción
to

Evento a ejecutar en caso de firma


516 DS_EVENT_END_SIGN
correcta.

Evento a ejecutar en caso de firma


519 DS_EVENT_END_SIGN_REJECT
rechazada.

Evento a ejecutar en caso de error en el


518 DS_EVENT_END_SIGN_ERROR
proceso de firma.

5. Para gestionar los distintos resultados del proceso de firma hay que crear las
variables de proceso de negocio que se describen a continuación.

Estas variables habrá que vaciarlas en algún estado previo a la firma en caso de
que se den bucles de procesos de firma.

ID Variable Nombre Descripción

Esta variable contiene el motivo


de rechazo de la firma. En
REJECT_SIGNATURE_TEXT
Motivo de rechazo de general se utilizará en el estado
firma al que se llega cuando se
(Tipo cadena)
produce un rechazo de firma
(evento 519).

Esta variable contiene la


descripción del error ocurrido
ERROR_SIGNATURE_TEXT durante el proceso de firma. En
Descripción del error general se utilizará en el estado
(Tipo cadena) al que se llega cuando se
produce un error de firma
(evento 518).

Puede consultar más información sobre la configuración de un proceso de negocio para


enviar a firmar un documento desde el gestor documental en la página “Enviar a firmar un
documento” de la ayuda en línea de PeopleNet.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 17 de 28 17
Firma Digital Electrónica

4.2 DESDE UN META4OBJECT


Desde un Meta4Object se puede solicitar la firma de un documento ejecutando un
método, y además al solicitar la firma se puede indicar a qué Meta4Object notificar el
proceso de firma.

De esta forma se solicitará la firma de un documento, y cuando el documento sea firmado


por la persona/s que se indique, se recibirá notificación en el método especificado. De la
misma forma, si hay un rechazo de firma o error en el proceso de firma se notificará
indicando el estado de la firma y el posible mensaje de error.

A continuación se describe cómo solicitar la firma de un documento y recibir la notificación


de firma desde/en un método de un Meta4Object.

4.2.1 Solicitar la firma de un documento

En el proceso de solicitud de firma:

• Se comprueba que el documento está en el gestor documental y que no está ya


en un proceso de firma.

• Se graba la información de petición de firma.

• Se solicita al proveedor externo de firma activo la firma del documento

• Si hay error

o Se devuelve M4_ERROR y la descripción del error en la propiedad


ERROR_DESC

o Si se ha grabado el proceso de firma se marca como erróneo y se graba el


error en el campo PROCESS_STATE_INFO.

o Si ARG_DELETE_ON_ERROR = 1 se borra la información de firma

Para solicitar la firma de un documento desde un Meta4Object, hay que llamar al método
de enviar un documento a firmar
(DMS_DOC_MANAGEMENT!DMS_DOC_MANAGEMENT_API.API_REQUEST_SIGNATURE_EXT).

SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_SIGNATURES_EXT_API.REQUEST_SIGNATURE

Este método recibe una serie de argumentos para identificar el documento a firmar, los
firmantes, el modo de firma, etc., que se describen a continuación, y devuelve como
resultado el error o éxito de la operación en función de si se ha lanzado o no el proceso de
firma.

A continuación se describen los argumentos del método de solicitud de firma:

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 18 de 28 18
Firma Digital Electrónica

Argumentos

REQUEST_SIGNATURE.

Argumento Descripción

ARG_ID_DOC Identificador del documento (obligatorio) (número)

ARG_ID_VER Identificador de la versión del documento. Defecto: 1

Argumentos de firma

Modo de firma (obligatorio) (número)

0  Firma individual. Sólo firma el primero.

ARG_SIGN_MODE 1 Todos en paralelo (múltiples firmantes realizan firmas


distintas)

2  Firma en serie. Firma de uno en uno según un orden.


Múltiples firmantes realizan firma sobre firma.

Fecha y hora tope para firmar el documento (si viene vacío el


ARG_DT_DEADLINE
límite lo establecera el sistema externo de firma)

(Obligatorio) (cadena): Información de los firmantes.


Formato XML usar Meta4Object SRTC_DMS_SIGNERS_INFO.
ARG_SIGNERS_INFO
Ampliar información en el apartado “Generación del XML de
información de firmantes” de este documento.

ARG_ID_ORGANIZATION Sociedad global de firma

ARG_ID_LOCAL_ORGANIZATION Sociedad local de firma

Datos adicionales que pudieran ser necesitados para trabajar


ARG_ADDITIONAL_DATA
con el proceso de firma externo.

Meta4Object de notificación Identificador del Meta4Object al que hay que notificar al


(ARG_M4O_NOTIFICATION) finalizar el proceso. Si se quisiera notificar a un proceso de
negocio se pondría el Meta4Object SWF_ENGINE_RT
Nodo de notificación Identificador del nodo que contiene el método al que hay que
(ARG_NODE_NOTIFICATION) notificar al finalizar el proceso. Si se quisiera notificar a un
proceso de negocio se pondría el nodo SWF_BPO
Identificador del método al que hay que notificar al finalizar el
Método de notificación proceso. Véanse los argumentos del método en el apartado
(ARG_ITEM_NOTIFICATION) “Recibir notificación del proceso de firma” de este documento.
Si se quisiera notificar a un proceso de negocio se pondría el
método RECEIVEWFEVENT / RECEIVEWFEVENT_ARG
Parámetro funcional que hay que pasarle al método al que
Parámetro de notificación
notificar al finalizar el proceso. Filtro funcional del proceso. Si
(ARG_PARAM_NOTIFICATION)
quisiera notificar a un proceso de negocio sería el WORKITEM
lo que habría que pasar.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 19 de 28 19
Firma Digital Electrónica

Argumento Descripción

ARG_DELETE_ON_ERROR (Número) Indica si hay que borrar la información de firma si


da error la petición de firma.
(1: Borrar 0: No borrar (defecto))
ARGO_REQUEST_ERROR_DESC Parámetro de salida con la descripción del error.
(OUT)

Resultado del método

El método devuelve:

• M4_SUCCESS  Documento enviado a firmar.

• M4_ERROR  No se pudo enviar el documento a firmar. En el parámetro de salida


ARGO_REQUEST_ERROR_DESC se tendrá una descripción del error.

4.2.2 Generación del XML de información de firmantes


(SRTC_DMS_SIGNERS_INFO)

Los firmantes de un documento deben especificarse mediante una cadena XML que se
generará utilizando el Meta4Object SRTC_DMS_SIGNERS_INFO.

Hay que ir añadiendo cada uno de los firmantes mediante el método


ADD_SIGNER_DATA_EXT y posteriormente ejecutar el método
GET_SIGNERS_INFO_STRING para obtener la cadena XML con la información de los
firmantes.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 20 de 28 20
Firma Digital Electrónica

Este Meta4Object permite serializar información de los firmantes.

Para añadir firmantes se utiliza el método ADD_SIGNER_DATA_V2 y para obtener la


información serializada se invoca al método GET_SIGNERS_INFO_STRING.

• Método ADD_SIGNER_DATA_V2

Método para añadir información de un firmante.

Argumento Descripción

Tipo de firmante (obligatorio)


ARG_ID_SIGNER_TYPE
(Número) (1: Usuario de aplicación, 2: Persona, 3: Sello de
empresa)

Identificador del firmante (obligatorio)


ARG_ID_SIGNER (Cadena)
En función del tipo de firmante será el ID Usuario, ID
Persona o ID Sello de empresa.
ARG_SIGN_ORDER (Número) Orden de firmante para firmas en serie

ARG_SIGNER_EXTERNAL_REF
Identificador del firmante en el sistema externo
(Cadena)

Correo electrónico que puede servir como identificador


ARG_EMAIL (Cadena)
del firmante en el sistema externo

ARG_PHONE_NUMBER Número de teléfono que puede servir como


(Cadena) identificador del firmante en el sistema externo.

ARG_SIGNATURE_POSITION Información relativa a la posición dentro del

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 21 de 28 21
Firma Digital Electrónica

Argumento Descripción

(Cadena) documento donde debe firmar el firmante

Idioma del firmante. (2: Inglés, 3: Español…). Ver


ARG_ID_LANGUAGE (Número)
valores en la tabla M4RDC_LU_LANGUAGES.

ARG_SIGNATURE_TYPE Tipo de firmante (1: Correo electrónico 2: Biométrica,


(Número) 3: Sello de empresa)

Dispositivo de firma para las firmas biométricas.


ARG_DEVICE (Cadena) Según el proveedor de firma puede ser o no
obligatorio

ID Certificado de empresa para los sellos de empresa.


ARG_STAMP_CERTIFICATE Puede grabarse en el modelo o luego calcularse con el
(Cadena) ID Sello de empresa establecido en el ID firmante.

Información extra del firmante que pueda requerir el


ARG_BUFFER1 (Cadena)
sistema externo.

Información extra del firmante que pueda requerir el


ARG_BUFFER2 (Cadena)
sistema externo.

• Método GET_SIGNERS_INFO_STRING

Método para serializar la información del firmante. Devuelve una cadena con la
serialización de los firmantes en formato XML.

Ejemplo:

<SIGNER_LIST>
<SIGNER> -- Firmante tipo usuario de aplicación, tipo firma email
<ID_SIGNER_TYPE>1</ID_SIGNER_TYPE>
<ID_SIGNER>ISABELH</ID_SIGNER>
<SIGN_ORDER>1</SIGN_ORDER>
<ID_APP_USER>ISABELH</ID_APP_USER>
<SIGN_EMAIL>isabelh@meta4.com</SIGN_EMAIL>
<SIGN_PHONE_NUMBER>666777888</SIGN_PHONE_NUMBER>
<ID_LANGUAGE>3</ID_LANGUAGE>
<SIGNATURE_TYPE>1</SIGNATURE_TYPE>
<SIGNATURE_POSITION>1,20</SIGNATURE_POSITION>
<SIGNER_EXTERNAL_REF>ExtRefDavidDoc</SIGNER_EXTERNAL_REF>
<BUFFER1>Buffer1</BUFFER1>
<BUFFER2>Buffer12</BUFFER2>
</SIGNER>
<SIGNER> -- Firmante tipo persona. Firma tipo BIO
<ID_SIGNER_TYPE>2</ID_SIGNER_TYPE>
<ID_SIGNER>M10326</ID_SIGNER>
<SIGN_ORDER>2</SIGN_ORDER>
<ID_LANGUAGE>2</ID_LANGUAGE>
<SIGN_EMAIL>Aston@meta4.com</SIGN_EMAIL>
<SIGNATURE_TYPE>1</SIGNATURE_TYPE>
<DEVICE>IPAD_1</DEVICE>
<SIGN_PHONE_NUMBER>555666777</SIGN_PHONE_NUMBER>
</SIGNER>
<SIGNER> -- Firmante tipo sello de empresa. Firma tipo sello de empresa.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 22 de 28 22
Firma Digital Electrónica

<ID_SIGNER_TYPE>3</ID_SIGNER_TYPE>
<ID_SIGNER>STAMP_RRHHH</ID_SIGNER>
<SIGN_ORDER>3</SIGN_ORDER>
<ID_LANGUAGE>2</ID_LANGUAGE>
<SIGNATURE_TYPE>3</SIGNATURE_TYPE>
</SIGNER>
</SIGNER_LIST>

4.2.3 Ejemplo de uso

A continuación se muestra el código de un método para solicitar la firma del documento


1014 por el usuario ISABELH. La notificación de la firma se espera en el método
NOTIFY_SIGNATURE del nodo y Meta4Object con identificador
TEST_DIGITAL_SIGN_FROM_M4O".

Método de petición de firma

' REQUEST_SIGNATURE: Petición de firma


'==================================

'--- Usuario con firma tipo EMAIL


iSignerType = 1 '- Usuario
sIdSigner = "ISABELH"
sUser1 = sIdSigner
sSignerExtRef1 =sIdSigner
SignOrder1= 1
sEmail1 = "isabel.hernandez.estevez@gmail.com"
Phone1 = "+34677628941"
SignaturePosition1= "1,20"
sBuffer11="Buffer1"
sBuffer21="Buffer12"
iLanguage = 3
iSignatureType = 1 'EMAIL
sDevice =""
sStamp = ""
SRTC_DMS_SIGNERS_INFO!SRTC_DMS_SIGNERS_INFO.ADD_SIGNER_DATA_V2(iSignerType,sIdSigner
,SignOrder1,sSignerExtRef1 ,sEmail1,Phone1,SignaturePosition1,iLanguage,iSignatureType,sDevice,sStamp,sBuffer11,sBuffer21)

arg_id_doc= 1014
arg_id_doc_ver= 1
arg_role =""
arg_sign_mode = 2 '1:Paralelo 2: Serie
arg_relevance = 1
arg_dt_deadline =TodayNowGMT() + 1
arg_m4o_notification = "TEST_FIRMA_DIGITAL"
arg_node_notification = "TEST_FIRMA_DIGITAL_RECEIVE"
arg_item_notification ="RECEIVE_SIGN_NOTIFICATION"
arg_param_notification=arg_id_doc
arg_signers_info = SRTC_DMS_SIGNERS_INFO!SRTC_DMS_SIGNERS_INFO.GET_SIGNERS_INFO_STRING()
arg_additionaldata =""
sIdOrg = GetProperty("ID_ORGANIZATION")
bDeleteOnError = M4_FALSE
sDescErr =""
iRet = SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_SIGNATURES_API.REQUEST_SIGNATURE(arg_id_doc,
arg_id_doc_ver, arg_sign_mode,arg_dt_deadline,arg_signers_info,sIdOrg,sIdOrg,arg_additionaldata,arg_m4o_notification,
arg_node_notification, arg_item_notification, arg_param_notification,bDeleteOnError,sDescErr)

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 23 de 28 23
Firma Digital Electrónica

4.2.4 Recibir la notificación de firma de un documento

Al solicitar la firma de un documento, se puede indicar que la notificación de firma del


mismo se reciba a través de la ejecución de un método de un Meta4Object (véanse los
argumentos del método de envío a firmar).

Este método debe tener las siguientes caractéristicas:

• Ser de ámbito nodo

• Tener los siguientes argumentos definidos en el orden que se muestra en la tabla:

Argumento Descripción

Estado del proceso de firma

Estado. Numérico -1: Error en la firma


0: Firma correcta

1: Firma rechazada
Dato funcional que permite identificar el proceso de firma. Es
el valor que se pasa en la petición de firma bajo el argumento
Parámetro funcional.
ARG_PARAM_NOTIFICATION. Por ejemplo, si estuviéramos
Cadena
en un proceso de negocio, sería el WORKITEM para identificar
el proceso funcional donde se solicitó la firma.

Texto de error que se rellena cuando se producen errores en


Mensaje de error. Long
el proceso de firma.

4.2.5 Cancelar un proceso de firma

En el proceso de cancelación de un documento hay que tener en cuenta que :

• Sólo se pueden cancelar los procesos pendientes de firma.

• Se solicita la cancelación de la firma al proveedor externo de firma.

• Se establece el documento como anulado (estado de validez).

• Se marca el proceso de firma como cancelado. (5: Cancelado. Tabla


M4DMS_DS_PRCSS_ST).

• No se modifica la información de los firmantes.

• Se guarda la causa de cancelación en el modelo. Campo:


M4DMS_DS_DOC_INFO.PROCESS_STATE_INFO

• Se notifica como fin de firma con estado cancelado.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 24 de 28 24
Firma Digital Electrónica

Para cancelar un proceso de firma y notificar al sistema externo la cancelación hay que
llamar al método:

SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_SIGNATURES_EXT_API.CANCEL_SIGNATURE

Argumentos

A continuación se describen los argumentos del método de solicitud de firma:


CANCEL_SIGNATURE.

Argumento Descripción

ARG_ID_DOC (Número) Identificador del documento (obligatorio)

ARG_ID_DOC_VERSION (Número) Versión del documento. Defecto:1

ARG_CANCEL_REASON (Cadena) Motivo de cancelación de la firma

ARG_NOTIFY (Número) Indica si hay que notificar al Meta4Object la cancelación

ARGO_CANCEL_ERROR_DESC
Mensaje de error de cancelación
(Cadena) (OUT)

Resultado del método

El método devuelve:

• M4_SUCCESS  Cancelado el proceso de firma del documento.

• M4_ERROR  No se ha podido cancelar el proceso de firma del documento.

4.2.6 Reiniciar un proceso de firma

En el reinicio de un proceso de firma hay que tener en cuenta que:

• Sólo se puede reiniciar un proceso de firma sobre documentos que no estén en


estado firmado. Para estos casos ya se tiene el documento firmado en el Gestor
documental y no se tiene el documento original.

• Si el documento está en proceso de firma, se solicita la cancelación de la firma al


sistema externo para evitar seguir recibiendo notificaciones.

• Se reinician todos los estados del documento y de los firmantes y se vuelve a


mandar a firmar.

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 25 de 28 25
Firma Digital Electrónica

Para reiniciar un proceso de firma hay que llamar al método

SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_SIGNATURES_EXT_API.
RELAUNCH_REQUEST_SIGNATURE

Argumentos

A continuación se describen los argumentos del método:

Argumento Descripción

ARG_ID_DOC (Número) Identificador del documento

ARG_ID_VER (Número) Identificador de la versión del documento

ARGO_ERROR_DESC (Cadena) Texto con el error

Resultado del método

El método devuelve:

• M4_SUCCESS  Se ha reiniciado el proceso de firma del documento.

• M4_ERROR  No se ha podido reiniciar el proceso de firma del documento.

4.2.7 Borrar un proceso de firma

En el borrado de un proceso de firma hay que tener en cuenta que:

• Sólo se puede borrar un proceso de firma sobre documentos que no estén en


estado firmado.

• Si el documento está en proceso de firma, se solicita la cancelación de la firma al


sistema externo para evitar seguir recibiendo notificaciones.

• Se borran los datos de firma.

• Se notifica como fin de firma.

Para borrar un proceso de firma hay que llamar al método


SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_SIGNATURES_EXT_API. DELETE_SIGNATURE

Argumentos

A continuación se describen los argumentos del método:

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 26 de 28 26
Firma Digital Electrónica

Argumento Descripción

ARG_ID_DOC (Número) Identificador del documento

ARG_ID_VER (Número Identificador de la versión del documento

ARGO_DELETE_ERROR_DESC
Texto con el error
(Cadena)

Resultado del método

El método devuelve:

• M4_SUCCESS  Se ha borrado el proceso de firma del documento.

• M4_ERROR  No se ha podido borrar el proceso de firma del documento.

4.2.8 Obtener el estado de firma de un documento

Para consultar el estado de firma de un documento hay que llamar al método


SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_SIGNATURES_EXT_API.GET_SIGN_PROCESS_STATE

Argumentos

A continuación se describen los argumentos del método:

Argumento Descripción

ARG_ID_DOC (Número) Identificador del documento

ARG_ID_DOC_VERSION (Número) Identificador de la versión del documento

ARGO_SIGN_PROCESS_STATE
Estado del documento
(Número) (OUT)

Resultado del método

El método devuelve:

• M4_SUCCESS  Estado de firma devuelto.

• M4_ERROR  Error al obtener el estado de firma.

4.2.9 Establecer la referencia externa de un documento

Para establecer la referencia externa de un documento que se ha mandado a firmar hay


que llamar al método

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 27 de 28 27
Firma Digital Electrónica

SRTC_DMS_SIGNATURES_EXT_SYSTEM!SRTC_DMS_SIGNATURES_EXT_API.ET_EXTERNAL_REFERENCE

Argumentos

A continuación se describen los argumentos del método:

Argumento Descripción

ARG_ID_DOC (Número) Identificador del documento

ARG_ID_DOC_VERSION (Número) Identificador de la versión del documento

ARG_EXTERNAL_REFERENCE
Referencia externa
(Cadena)

Resultado del método

El método devuelve:

• M4_SUCCESS  Referencia externa actualizada.

• M4_ERROR  Error al establecer la referencia externa.

4.2.10 Grabar el documento firmado

Para guardar un documento firmado sobre la versión existente, hay que llamar al método
de API en el gestor documental
(DMS_DOC_MANAGEMENT!DMS_DOC_MANAGEMENT_API.API_SAVE_SIGNED_DOCUMENT).

Argumentos

A continuación se describen los argumentos del método:

Argumento Descripción

Documento (AI_ID_DOC) Identificador del documento

Versión (AI_DOC_VER_FILE) Identificador de la versión del documento

COPIGHT © 2019 Meta4 Spain, S.A.


No copiar ni divulgar sin autorización previa de Meta4®
Página 28 de 28 28

También podría gustarte