Versão atual:

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.

Versão (1):

Ver a versão formatada

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

Comentário

new question