- Criado por Usuário desconhecido (felipe.falk), última alteração por Simon Flock Schiesl Ferreira em 31 ago, 2023
CONTEÚDO
01. Objetivos
As procedures da API foram desenvolvidas para que seja possível invocar determinados comportamentos do produto ECM utilizando programas Progress.
02. Pré-requisitos
- Para que a integração entre ECM e Progress seja realizada, é necessário que a tabela configur contenha os dados referente a conexão com o servidor do ECM.
- Para realizar essa configuração é necessário saber:
- Nome do servidor.
- Porta do servidor.
- Contexto em que a aplicação de ECM foi instalada (normalmente o contexto é "webdesk").
- Alterar o fonte a seguir com as informações do servidor
CREATE configur. ASSIGN configur.idi_dtsul = NEXT-VALUE(seq_configur) configur.idi_dtsul_usuar_mestre = 0 configur.nom_configur = "ecmServer" configur.des_val_configur = "$nome_do_servidor$". CREATE configur. ASSIGN configur.idi_dtsul = NEXT-VALUE(seq_configur) configur.idi_dtsul_usuar_mestre = 0 configur.nom_configur = "ecmPort" configur.des_val_configur = "$porta_do_servidor$". CREATE configur. ASSIGN configur.idi_dtsul = NEXT-VALUE(seq_configur) configur.idi_dtsul_usuar_mestre = 0 configur.nom_configur = "ecmContext" configur.des_val_configur = "$nome_do_contexto$".
03. Detalhamento das procedures
Objetivo: Tem por objetivo retornar para um determinado processo e estado o número corrente da thread. Esse é necessário pois toda e qualquer movimentação é feita por meio do número do processo e thread e não por meio do estado.
Parâmetros:
Parâmetro | I/O | Tipo de Dado | Conteúdo |
---|---|---|---|
username | Input | Character | Usuário de integração |
password | Input | Character | Senha do usuário de integração |
companyId | Input | Integer | Código da empresa |
processInstanceId | Input | Integer | Código do processo |
stateSequence | Input | Integer | Código do estado |
actualThread | Output | Integer | Código da thread referente a este estado |
Exemplo:
/******************************************************************/ DEFINE VARIABLE username AS CHARACTER NO-UNDO. DEFINE VARIABLE password AS CHARACTER NO-UNDO. DEFINE VARIABLE companyId AS INTEGER NO-UNDO. DEFINE VARIABLE processInstanceId AS INTEGER NO-UNDO. DEFINE VARIABLE nmrAtividade AS INTEGER NO-UNDO. DEFINE VARIABLE actualThread AS INTEGER NO-UNDO. DEFINE VARIABLE hConn AS HANDLE NO-UNDO. ASSIGN username = “usuario” password = “senha” companyId = 1 processInstanceId = 204 nmrAtividade = 6. Run “conn-ecm.p” PERSISTENT SET hConn. RUN getActualThread in hConn (INPUT username , INPUT password , INPUT companyId , INPUT processInstanceId , INPUT nmrAtividade , OUTPUT actualThread ). MESSAGE “Thread atual ” actualThread VIEW-AS ALERT-BOX INFO BUTTONS OK.
Objetivo: Tem por objetivo retornar uma lista com os estados que a thread corrente pode ser direcionada.
Parâmetros:
Parâmetro | I/O | Tipo de Dado | Conteúdo |
---|---|---|---|
username | Input | Character | Usuário de integração |
password | Input | Character | Senha do usuário de integração |
companyId | Input | Integer | Código da empresa |
processId | Input | Character | Nome do processo |
processInstanceId | Input | Integer | Código do processo |
threadSequence | Input | Integer | Código da thread |
states | Output | Integer EXTENT | Lista com os possíveis estados |
Exemplo:
/******************************************************************/ DEFINE VARIABLE username AS CHARACTER NO-UNDO. DEFINE VARIABLE password AS CHARACTER NO-UNDO. DEFINE VARIABLE companyId AS INTEGER NO-UNDO. DEFINE VARIABLE processId AS CHARACTER NO-UNDO. DEFINE VARIABLE processInstanceId AS INTEGER NO-UNDO. DEFINE VARIABLE threadSequence AS INTEGER NO-UNDO. DEFINE VARIABLE states AS INTEGER NO-UNDO EXTENT. DEFINE VARIABLE hConn AS HANDLE NO-UNDO. ASSIGN username = “usuario” password = “senha” companyId = 1 processId = "teste_3" processInstanceId = 204 threadSequence = 6. Run “utp/ut-integra-ecm.p” PERSISTENT SET hConn. RUN getAvailableStates IN hConn (INPUT username, INPUT password, INPUT companyId, INPUT processId, INPUT processInstanceId, INPUT threadSequence, OUTPUT states). MESSAGE “Estados disponiveis ” EXTENT(states) VIEW-AS ALERT-BOX INFO BUTTONS OK.
Objetivo: Tem por objetivo realizar alterações nas informações de uma atividade do processo e também submetê-la para outra atividade.
Parâmetros:
Parâmetro | I/O | Tipo de Dado | Conteúdo |
---|---|---|---|
username | Input | Character | Usuário de integração |
password | Input | Character | Senha do usuário de integração |
companyId | Input | Integer | Código da empresa |
processInstanceId | Input | Integer | Código do processo |
chooseState | Input | Integer | Código do estado destino |
processId | Input | Character | Nome do processo |
comments | Input | Character | Comentários da movimentação |
usrId | Input | Character | |
attacments | Input | Longchar | Anexo |
cardData | Input | Longchar | |
colleagues | Input | Character | ***** (separados por virgula) |
managerMode | Input | Logical | |
threadSequence | Input | Integer | Código da thread |
ecmID | Output | Integer | Id resultante pelo ECM |
resultXML | Output | Character | XML resultante da operação |
Exemplo:
/******************************************************************/ DEFINE VARIABLE username AS CHARACTER NO-UNDO. DEFINE VARIABLE password AS CHARACTER NO-UNDO. DEFINE VARIABLE companyId AS INTEGER NO-UNDO. DEFINE VARIABLE processInstanceId AS INTEGER NO-UNDO. DEFINE VARIABLE choosedState AS INTEGER NO-UNDO. DEFINE VARIABLE processId AS CHARACTER NO-UNDO. DEFINE VARIABLE comments AS CHARACTER NO-UNDO. DEFINE VARIABLE usrId AS CHARACTER NO-UNDO. DEFINE VARIABLE attacments AS LONGCHAR NO-UNDO. DEFINE VARIABLE cardData AS LONGCHAR NO-UNDO. DEFINE VARIABLE colleagues AS CHARACTER NO-UNDO. DEFINE VARIABLE managerMode AS LOGICAL NO-UNDO. DEFINE VARIABLE threadSequence AS INTEGER NO-UNDO. DEFINE VARIABLE ecmID AS INTEGER NO-UNDO. DEFINE VARIABLE resultXML AS CHARACTER NO-UNDO. DEFINE VARIABLE hConn AS HANDLE NO-UNDO. ASSIGN username = “usuario” password = “senha” companyId = 1 processInstanceId = 204 choosedState = 2 processId = "teste_3" comments = “Comentário para a movimentação” usrId = “usuario” colleagues = “usuario1,usuario2,usuario3” threadSequence = 6. Run “utp/ut-integra-ecm.p” PERSISTENT SET hConn. RUN saveAndSendTask IN hConn (INPUT username , INPUT password , INPUT companyId , INPUT processInstanceId , INPUT choosedState , INPUT processId , INPUT comments , INPUT usrId , INPUT attacments , INPUT cardData , INPUT colleagues , INPUT managerMode , INPUT threadSequence , OUTPUT ecmID , OUTPUT resultXML ). MESSAGE “ECM ID ” ecmID SKIP “XML resultante ” resultXML VIEW-AS ALERT-BOX INFO BUTTONS OK.
Objetivo: Tem por objetivo disponibilizar um meio de movimentar a atividade do processo tendo apenas o numero do estado corrente como informação.
Parâmetros:
Parâmetro | I/O | Tipo de Dado | Conteúdo |
---|---|---|---|
username | Input | Character | Usuário de integração |
password | Input | Character | Senha do usuário de integração |
companyId | Input | Integer | Código da empresa |
processId | Input | Character | Nome do processo |
processInstanceId | Input | Integer | Código do processo |
stateSequence | Input | Integer | Código do estado destino |
comments | Input | Character | Comentários da movimentação |
usrId | Input | Character | |
colleagues | Input | Character | ***** (separados por virgula) |
managerMode | Input | Logical | |
ecmID | Output | Integer | Id resultante pelo ECM |
resultXML | Output | Character | XML resultante da operação |
Exemplo:
/******************************************************************/ DEFINE VARIABLE username AS CHARACTER NO-UNDO. DEFINE VARIABLE password AS CHARACTER NO-UNDO. DEFINE VARIABLE companyId AS INTEGER NO-UNDO. DEFINE VARIABLE processId AS CHARACTER NO-UNDO. DEFINE VARIABLE processInstanceId AS INTEGER NO-UNDO. DEFINE VARIABLE stateSequence AS INTEGER NO-UNDO. DEFINE VARIABLE comments AS CHARACTER NO-UNDO. DEFINE VARIABLE usrId AS CHARACTER NO-UNDO. DEFINE VARIABLE colleagues AS CHARACTER NO-UNDO. DEFINE VARIABLE managerMode AS LOGICAL NO-UNDO. DEFINE VARIABLE ecmId AS INTEGER NO-UNDO. DEFINE VARIABLE resultXML AS CHARACTER NO-UNDO. DEFINE VARIABLE hConn AS HANDLE NO-UNDO. ASSIGN username = “usuario” password = “senha” companyId = 1 processId = "teste_3" processInstanceId = 204 stateSequence = 2 comments = “Comentário para a movimentação” usrId = “usuario” colleagues = “usuario1,usuario2,usuario3” managerMode = TRUE. Run “utp/ut-integra-ecm.p” PERSISTENT SET hConn. ASSIGN RUN sendTaskByActivityNmr IN hConn ( INPUT username , INPUT password , INPUT companyId , INPUT processId , INPUT processInstanceId , INPUT stateSequence , INPUT comments , INPUT usrId , INPUT colleagues , INPUT managerMode , OUTPUT ecmId , OUTPUT resultXML ). MESSAGE “ECM ID ” ecmId SKIP “XML resultante ” resultXML VIEW-AS ALERT-BOX INFO BUTTONS OK.
Objetivo: Tem por objetivo disponibilizar um meio de criar um processo de workflow.
Parâmetros:
Parâmetro | I/O | Tipo de Dado | Conteúdo |
---|---|---|---|
username | Input | Character | Usuário de integração |
password | Input | Character | Senha do usuário de integração |
companyId | Input | Integer | Código da empresa |
processId | Input | Character | Nome do processo |
comments | Input | Character | Comentários da movimentação |
usrId | Input | Character | |
attachments | Input | Longchar | Anexo |
cardData | Input | Longchar | |
colleagues | Input | Character | ***** (separados por virgula) |
ecmID | Output | Integer | Id resultante pelo ECM |
resultXML | Output | Character | XML resultante da operação |
Exemplo:
/******************************************************************/ DEFINE VARIABLE username AS CHARACTER NO-UNDO. DEFINE VARIABLE password AS CHARACTER NO-UNDO. DEFINE VARIABLE companyId AS INTEGER NO-UNDO. DEFINE VARIABLE processId AS CHARACTER NO-UNDO. DEFINE VARIABLE comments AS CHARACTER NO-UNDO. DEFINE VARIABLE usrId AS CHARACTER NO-UNDO. DEFINE VARIABLE attachments AS LONGCHAR NO-UNDO. DEFINE VARIABLE cardData AS LONGCHAR NO-UNDO. DEFINE VARIABLE colleagues AS CHARACTER NO-UNDO. DEFINE VARIABLE ecmId AS INTEGER NO-UNDO. DEFINE VARIABLE resultXML AS CHARACTER NO-UNDO. DEFINE VARIABLE hConn AS HANDLE NO-UNDO. ASSIGN username = “usuario” password = “senha” companyId = 1 processId = "teste_3" comments = “Comentário” usrId = “usuario” colleagues = “usuario1,usuario2,usuario3”. Run “utp/ut-integra-ecm.p” PERSISTENT SET hConn. RUN startProcess IN hConn (INPUT username , INPUT password , INPUT companyId , INPUT processId , INPUT comments , INPUT usrId , INPUT attachments , INPUT cardData , INPUT colleagues , OUTPUT ecmId , OUTPUT resultXML ). MESSAGE “ECM ID ” ecmID SKIP “XML resultante ” resultXML VIEW-AS ALERT-BOX INFO BUTTONS OK.
04. Exemplos
Objetivo: Tem por objetivo iniciar um novo processo de workflow dentro do ECM.
Exemplo:
DEFINE VARIABLE hConn AS HANDLE NO-UNDO. DEFINE VARIABLE username AS CHARACTER NO-UNDO. DEFINE VARIABLE password AS CHARACTER NO-UNDO. DEFINE VARIABLE companyId AS INTEGER NO-UNDO. DEFINE VARIABLE processId AS CHARACTER NO-UNDO. DEFINE VARIABLE comments AS CHARACTER NO-UNDO. DEFINE VARIABLE usrId AS CHARACTER NO-UNDO. DEFINE VARIABLE attachments AS LONGCHAR NO-UNDO. DEFINE VARIABLE cardData AS LONGCHAR NO-UNDO. DEFINE VARIABLE colleagues AS CHARACTER NO-UNDO. DEFINE VARIABLE ecmId AS INTEGER NO-UNDO. DEFINE VARIABLE auxResult AS CHARACTER NO-UNDO. RUN "utp/ut-integra-ecm.p" PERSISTENT SET hConn. ASSIGN username = "usuario" password = "senha" companyId = 1 processId = "teste_3" comments = "Comentário de Criação" usrId = "usuario1" colleagues = "usuario2,usuario3,usuario4". RUN startProcess IN hConn ( INPUT username , INPUT password , INPUT companyId , INPUT processId , INPUT comments , INPUT usrId , INPUT attachments , INPUT cardData , INPUT colleagues , OUTPUT ecmId , OUTPUT auxResult ).
Objetivo: Tem por objetivo movimentar um processo de workflow dentro do ECM.
Exemplo:
DEFINE VARIABLE hConn AS HANDLE NO-UNDO. DEFINE VARIABLE username AS CHARACTER NO-UNDO. DEFINE VARIABLE password AS CHARACTER NO-UNDO. DEFINE VARIABLE companyId AS INTEGER NO-UNDO. DEFINE VARIABLE processId AS CHARACTER NO-UNDO. DEFINE VARIABLE processInstanceId AS INTEGER NO-UNDO. DEFINE VARIABLE nmrAtividade AS INTEGER NO-UNDO. DEFINE VARIABLE comments AS CHARACTER NO-UNDO. DEFINE VARIABLE usrId AS CHARACTER NO-UNDO. DEFINE VARIABLE colleagues AS CHARACTER NO-UNDO. DEFINE VARIABLE managerMode AS LOGICAL NO-UNDO INIT TRUE. DEFINE VARIABLE ecmId AS INTEGER NO-UNDO. DEFINE VARIABLE auxResult AS CHARACTER NO-UNDO. RUN "utp/ut-integra-ecm.p" PERSISTENT SET hConn. ASSIGN username = "usuario" password = "senha" companyId = 1 processId = "teste_3" comments = "Comentário de Geração" usrId = "usuario1" colleagues = "usuario2,usuario3" processInstanceId = 207 nmrAtividade = 3. RUN sendTaskByActivityNmr IN hConn ( INPUT username , INPUT password , INPUT companyId , INPUT processId , INPUT processInstanceId, INPUT nmrAtividade , INPUT comments , INPUT usrId , INPUT colleagues , INPUT managerMode , OUTPUT ecmId , OUTPUT auxResult ).
- Sem rótulos