Widget para iniciar el proceso: problema al adjuntar el archivo

Olá, boa tarde, tenho uma dúvida. Tenho que fazer um widget com campos e anexar um arquivo para iniciar uma solicitação de processo. Eu tenho um erro no XML que não me diz o que poderia ser.

Formulario

<html>
<head>
    <link type="text/css" rel="stylesheet" href="/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="/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="row">
        <label for="field1">Nombre</label>
        <input type="text" class="form-control" name="field1" id="field1" >
    </div>
    <div class="row">
        <label for="field2">Observaciones</label>
        <input type="text" class="form-control" name="field2" id="field2" >
    </div>

    <div class="row">
    <input type="file" name="attachments" id="attachments" />
    </div>
</form>

</div>
</body>
    <script>
    const fileInput = document.querySelector("input");
            fileInput.addEventListener("change", (e) => {
     const file = e.target.files[0];
     const reader = new FileReader();
          reader.onloadend = () => {
     const base64String = reader.result.replace("data:", "").replace(/^.+,/, "");
     document.getElementById("attachment").value = base64String ;

      };
      reader.readAsDataURL(file);
    });</script>
</html>

Widget

<div id="MyWidget_${instanceId}" class="super-widget wcm-widget-class fluig-style-guide" data-params="MyWidget.instance()">
<div class="fluig-style-guide">
          <form name="form" role="form">
            <div class="form-group">
                <label for="field1">Nombre</label>
                <input type="text" class="form-control" name="field1" id="field1" >
            </div>
            <div class="form-group">
                <label for="field2">Observaciones</label>
                <input type="text" class="form-control" name="field2" id="field2" >
            </div>
        </form>

    <input type="file" />

    <div>
        <button type="buton" class="btn btn-primary"  data-registrar >Enviar</button>
    </div>
<script>
  const fileInput = document.querySelector("input");
          fileInput.addEventListener("change", (e) => {
   const file = e.target.files[0];
   const reader = new FileReader();
        reader.onloadend = () => {
   const base64String = reader.result.replace("data:", "").replace(/^.+,/, "");
   document.getElementById("attachment").value = base64String ;

    };
    reader.readAsDataURL(file);
  });</script>
</div>
</div>

XML

   <?xml version="1.0" encoding="ISO-8859-1" ?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.workflow.ecm.technology.totvs.com/">
    <soapenv:Header />
        <soapenv:Body>
            <ws:startProcess>
                <username>awelschen@akron.com.ar</username>
                <password>Akron.2021</password>
                <companyId>1</companyId>
                <processId>AvisoMantenimiento</processId>
                <attachments name="attachments">
                  <item>
                     <attachmentSequence>1</attachmentSequence>
                        <attachments>
                           <attach>true</attach>
                           <fileName name="fileName"></fileName>
                           <filecontent name="filecontent"></filecontent>
                           <mobile>true</mobile>
                           <fileSize>0</fileSize>
                           <principal>true</principal>
                        </attachments>
                     <description name="description"></description>
                     <fileName name="fileName"></fileName>
                    </item>
                </attachments>
                <cardData>
                <item>
                   <item>field1</item>
                   <item name="field1"></item>
                </item>
                  <item>
                   <item>field2</item>
                   <item name="field2"></item>
                </item>
                </cardData>
                <appointment></appointment>
                <managerMode>false</managerMode>
            </ws:startProcess>
        </soapenv:Body>
    </soapenv:Envelope>

js

var MyWidget = SuperWidget.extend({
    //variáveis da widget
    variavelNumerica: null,
    variavelCaracter: null,

    //método iniciado quando a widget é carregada
    init: function() {
    },

    //BIND de eventos
    bindings: {
        local: {
            'registrar': ['click_registrar']
        },
        global: {}
    },
            startProcess: function () {
                let xml;
                $.ajax({
                   url: '/AvisoMantenimiento/resources/js/startProcess.xml',
                  async: false,
                  type: "get",
                  datatype: "xml",
                  success: function (data) {
                    xml = $(data);
                  },
                });
                return xml;
              },

           registrar: function() {
             let _xml = this.startProcess();  // get xml
                _xml.find('[name="field1"]').text(document.getElementById('field1').value);
                _xml.find('[name="field2"]').text(document.getElementById('field2').value);
                _xml.find('[name="filecontent"]').text(document.getElementById('attachment').value);

                // ...
                //complete a variável _xml com todos os dados restantes do seu formulário, inclusive os dados do anexo
                // ...

                WCMAPI.Create({
                   url: "/webdesk/ECMWorkflowEngineService?wsdl",
                   contentType: "text/xml;charset=ISO-8859-1",
                   dataType: "xml",
                   data: _xml[0],
                   success: function(data) {
                   // retorno do webservice com os dados da solicitação iniciada
                   },error: function(err) {
                   // retorno do webservice com erro
                   }
               })
           }
});
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!

0 resposta

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