Envio de campo table via atividade Serviço para servidor REST

Bom dia amigos, Seguindo com o projeto Solicitação de Compra via Fluig x Protheus. Estou com mais uma dificuldade. Criei um fluxo e nele um serviço que consome um Script que envia 4 campos de um formulário, o detalhe é que para facilitar para o usuário pensei em criar uma tabela dinâmica e um botão para multiplicar os itens, assim o solicitante adiciona quantos itens quiser na solicitação de compra. Ex:

<html>
<head>
    <link type="text/css" rel="stylesheet" href="/portal/resources/style-guide/css/fluig-style-guide.min.css"/>
    <script type="text/javascript" src="/portal/resources/js/jquery/jquery.js"></script>
    <script type="text/javascript" src="/portal/resources/js/jquery/jquery-ui.min.js"></script>
    <script type="text/javascript" src="/portal/resources/js/mustache/mustache-min.js"></script>
    <script type="text/javascript" src="/portal/resources/style-guide/js/fluig-style-guide.min.js" charset="utf-8"></script>
</head>
<body>
    <div class="fluig-style-guide">
        <form name="form" role="form">
            <div class="fluig-style-guide">
                <form name="form" role="form">

                    <div class="panel panel-default" id="pn_usi_funDeBloco_etapa01">
                        <div class="panel-heading">
                            <h3 class="panel-title">Solicitacao</h3>
                        </div>
                        <div class="panel-body">
                            <div class="table-responsive">

                                <table class="table table-striped table-bordered" tablename="tb_Solicitacao_Compra" id="tb_Solicitacao_Compra" deleteicon="/ecm_resources/resources/assets/images/delete_24_Original.png">
                                    <thead>
                                        <tr>
                                            <th>ITEM</th>
                                            <th>PRODUTO</th>
                                            <th>QUANTIDADE</th>
                                            <th>Local01</th>
                                            <th>CC</th>

                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                            <td><input type="text" name="ITEM" id="ITEM" class="form-control"></td>
                                            <td><input type="text" name="PRODUTO" id="PRODUTO" class="form-control"></td>
                                            <td><input type="text" name="QUANTIDADE" id="QUANTIDADE" class="form-control"></td>
                                            <td><input type="text" name="Local01" id="Local01" class="form-control"></td>
                                            <td><input type="text" name="CC" id="CC" class="form-control"></td>
                                        </tr>
                                    </tbody>
                                </table>
                            </div>

                        </div>
                    </div>
                </form>
            </div>
        </body>
        <script type="text/javascript" src="ds_teste04.js"></script>
    </html>

Anteriormente com a ajuda do @Diogo Boegershausen criamos um modelo para apenas um produto.

function servicetask11(attempt, message) {

    var clientService = fluigAPI.getAuthorizeClientService();

    // Usando new String() do javascript nos parâmetros pra não dar problema no JSON.stringify 
    var data = {
            options : { "logMessages" : "true"},
            companyId: 1 + '',
            serviceCode: 'SC',
            endpoint: 'http://192.168.200.XXX:80XX/rest/SC',
            method: 'POST',
            timeoutService: '100',
            params: {
                  "SC":{
                        "NUM": "cDoc",
                        "SOLICITANTE": "cUserName",
                        "EMISSAO": "dDataBase",
                        "ITENS":
                        [{
                            "ITEM" : new String(hAPI.getCardValue("ITEM")),
                            "PRODUTO" : new String(hAPI.getCardValue("PRODUTO")),
                            "QUANTIDADE" : parseInt(hAPI.getCardValue("QUANTIDADE")),
                            "DATA" : "",
                            "LOCAL" : new String(hAPI.getCardValue("Local01")),
                            "CC" : new String(hAPI.getCardValue("CC")),
                            "OBS" : "GERADO VIA WEBSERVICE"
                      }]
                  }
                },

    }

    var vo = clientService.invoke(JSON.stringify(data));

    // Jogando o retorno do POST como uma observação no histórico da solicitação        
    var tenantId = getValue('WKCompany');
    var numState = getValue('WKCurrentState');
    var user = getValue('WKUser');
    var numProcess = getValue('WKNumProces');
    var currentThread = hAPI.getActualThread(tenantId, numProcess, numState);
    hAPI.setTaskComments(user, numProcess, currentThread, "Resultado da chamada: " + vo.getResult());

}

Agora o desafio é implementar mais de um item usando a função table.

compartilhar
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do fluig Forum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags rest servicos formulario ou faça a sua própria pergunta.