Bom dia pessoal, estou tentando usar a API de iniciar processo através de um programa do Datasul (progress), porém não sei como fazer a parte da autenticação OAuth 1.0 na linguagem progress, todo o resto ja esta OK, falta só a autenticação. Alguém já fez algo desse tipo?
Vou te passar um exemplo para voce chamar um dataset do Fluig, o conceito é o mesmo só que ao inves de instanciar WS ECMDatasetService voce vai instanciar o ECMWorkflowEngineService chamado o metodo startProcess
&GLOBAL-DEFINE empresaIntegrador 1
&GLOBAL-DEFINE usuarioIntegrador adm
&GLOBAL-DEFINE passwordIntegrador 123
RUN criaObra(INPUT tt-dados.numSeq,
INPUT i-vendedor).
RUN limpaWS.
PROCEDURE instanciaWS:
DEFINE OUTPUT PARAMETER pConnect AS LOGICAL NO-UNDO.
DEFINE OUTPUT PARAMETER pErro AS CHARACTER NO-UNDO.
DEFINE VARIABLE lConnect AS LOGICAL NO-UNDO.
CREATE SERVER hWSCotacao.
lConnect = hWSCotacao:CONNECT("-WSDL 'http://192.168.1.41:8080/webdesk/ECMDatasetService?wsdl'") NO-ERROR.
IF NOT lConnect THEN DO:
ASSIGN pConnect = NO
pErro = ERROR-STATUS:GET-MESSAGE(1).
RETURN.
END.
RUN DatasetService SET hDSCotacao ON hWSCotacao.
ASSIGN iEmpresa = {&empresaIntegrador}
cUsuario = '{&usuarioIntegrador}'
cSenha = '{&passwordIntegrador}'
pConnect = YES.
END PROCEDURE.
PROCEDURE limpaWS:
IF VALID-HANDLE(hDSCotacao) THEN DELETE OBJECT hDSCotacao.
IF VALID-HANDLE(hWSCotacao) THEN DO:
hWSCotacao:DISCONNECT().
DELETE OBJECT hWSCotacao.
END.
END PROCEDURE.
PROCEDURE criaObra:
DEFINE INPUT PARAMETER pNumSeq AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER i-vendedor AS INTEGER NO-UNDO.
DEFINE VARIABLE lConnect AS LOGICAL NO-UNDO.
DEFINE VARIABLE cErro AS CHARACTER NO-UNDO.
DEFINE VARIABLE cRetorno AS LONGCHAR NO-UNDO.
DEFINE VARIABLE cConstraint AS CHARACTER NO-UNDO.
DEFINE VARIABLE obsAux AS CHARACTER NO-UNDO.
IF NOT VALID-HANDLE(hWSCotacao) THEN DO:
RUN instanciaWS (OUTPUT lConnect,
OUTPUT pErro).
IF NOT lConnect THEN RETURN pErro.
END.
FIND FIRST bf-tt-dados NO-LOCK
WHERE bf-tt-dados.numSeq = pNumSeq NO-ERROR.
IF AVAIL bf-tt-dados THEN DO:
ASSIGN cConstraint = "<constraints>".
RUN piContraint(INPUT-OUTPUT cConstraint, "numSeq" , bf-tt-dados.numSeq , 1).
RUN piContraint(INPUT-OUTPUT cConstraint, "numObra" , bf-tt-dados.numObra , 1).
RUN piContraint(INPUT-OUTPUT cConstraint, "dataSolic" , bf-tt-dados.dataSolic , 2).
RUN piContraint(INPUT-OUTPUT cConstraint, "valorVenda" , bf-tt-dados.valorVenda , 3).
ASSIGN cConstraint = cConstraint + "</constraints>".
RUN getDataset IN hDSCotacao (INPUT iEmpresa,
INPUT cUsuario,
INPUT cSenha,
INPUT "Ds_CriaOrdemServicoViaWS",
INPUT "<fields></fields>",
INPUT cConstraint,
INPUT "<order></order>",
OUTPUT cRetorno).
END.
RETURN "ok".
END PROCEDURE.
PROCEDURE piContraint:
DEFINE INPUT-OUTPUT PARAMETER cContraint AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER nome AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER valor AS CHARACTER NO-UNDO.
DEFINE INPUT PARAMETER tipo AS INTEGER NO-UNDO.
DEFINE VARIABLE d-aux AS DATE NO-UNDO.
IF tipo = 2 THEN DO:
IF valor = “” OR valor = “/ /” THEN
ASSIGN valor = “NULL”.
IF valor <> "NULL" THEN DO:
ASSIGN d-aux = DATE(valor) NO-ERROR.
IF ERROR-STATUS:ERROR = YES THEN
ASSIGN valor = "NULL".
ELSE
ASSIGN valor = "'" + STRING(YEAR(d-aux)) + "-" + STRING(MONTH(d-aux)) + "-" + STRING(DAY(d-aux)) + "'".
END.
END.
IF tipo = 3 THEN DO:
ASSIGN valor = REPLACE(valor,“.”,“”).
ASSIGN valor = REPLACE(valor,“,”,“.”).
END.
ASSIGN cContraint = cContraint + " “+
" MUST”+
" " + nome + “”+
" " + valor + “”+
" " + valor + “”+
" ".
END.