Campos customizados - como popular e como ler?

Senhores,

Claro que não estou fazendo certo.

Eu criei um campo customizado e indiquei que ele fosse ligado a todos os documentos. Esperava que eu, na hora de criar o documento via código, pudesse informar o valor desse campo.

Fiz a gravação assim, informando no JSON este novo campo (campoCustomizadoBiblioNumero):


criarDocumentoREST:function(){
//o campo campoCustomizadoBiblioNumero abaixo foi criado no painel de controle, campos customizados   
        var confirma=confirm("Já copiou os arquivos do dia, do P: para o servidor?");
        if(confirma){
            var caminhoFalsoArquivo=jQuery("#idFilBiblioRegistroArqREST").val();
            var arquivo=caminhoFalsoArquivo.substring(12);
            var txtData=jQuery("#idDatBiblioRegistroDataREST").val();
            var intNumero=jQuery("#idNumBiblioRegistroNumeroREST").val();
            var txtAssunto=jQuery("#idTxtBiblioRegistroAssuntoREST").val();
            var txtCodigo=jQuery("#idTxtBiblioRegistroCodigoREST").val();
            var intPastaMae=jQuery("#idSelBiblioRegistroPastaMaeREST option:selected").val()*1;
            var txtEmenta=jQuery("#idTxtBiblioRegistroEmentaREST").val();
           // var txtComentarioAdicional=jQuery("#idTxtBiblioRegistroAdicionaisREST").val();
           // alert ('/upload/admin/'+arquivo);
            if(txtEmenta != "" && arquivo !="" && intPastaMae != 0){
            var _jSonRest= {
                      "id"                      : "",
                      "version"                 : "1000",
                      "companyId"               : "1",
                      "type"                    : "2",
                      "description"             : txtEmenta,
                      "additionalComments"      : txtAssunto,
                      "colleagueId"             : "ucrgrj",
                      "iconPath"                : "",
                      "publisherId"             : "admin",
                      "publisherName"           : "admin",
                      "immutable"               :  false,
                      "createDate"              : "",
                      "approvedDate"            : txtData,
                      "expirationDate"          : "",
                      "validationStartDate"     : "",
                      "lastModifiedDate"        : "",
                      "parentId"                : intPastaMae,
                      "activeVersion"           : true,
                      "phisicalFile"            : "/upload/admin/"+arquivo,
                      "securityLevel"           : "0",
                      "campoCustomizadoBiblioNumero" : intNumero,
                      "onCheckout"              : false,
                      "forApproval"             : false,
                      "removed"                 : false,
                      "isPrivate"               : false,
                      "crc"                     : "",
                      "userPermission"          : "0",
                      "attachments"             : [{
                          "fileName"   : arquivo,
                          "principal"  : true,
                          "attachment" : false
                      }],
                      "documentPropertyNumber"  : "",
                      "documentPropertyVersion" :""
            }
    //----------------------------------------
            jQuery.ajax({ 
                method:'POST',
                data:JSON.stringify(_jSonRest),
                url:'/api/public/ecm/document/createDocument',
                dataType:'json',
                contentType:'application/json;charset=utf-8',
                success: function(retorno)
                { 
                    FLUIGC.loading('#w_central_${instanceId}');
                    alert ("Salvou"); 
                    },//success 
                error: function (x,e,e2){ 
                    alert ('Provavelmente, na área de upload do usuário, não há o arquivo que você escolheu. Precisa fazer upload dos arquivos para o servidor, antes de escolhê-lo nesta lista: '+x.status+' '+e+' '+e2);
                    //alert (x.status+" "+e+' '+e2); 
                }//error 
                });
            }else{
                alert("Não são permitidos campos vazios");
            }//if txtEmtna
        }else{
            alert ("OK. Copie, então");
        }//if confirma
        }//criarDocumentoREST

Na hora da leitura, tentei trazer os dados do documento, assim:


detalhe:function(elemento,evento){
        var opcao = jQuery(elemento).val()*1;
        var objA=jQuery("#idACentralBiblioDetalhes");
        objA.empty();
        if(opcao>0){
        var caminhoDocumento="/api/public/ecm/document/"+opcao+"/1000";
        jQuery.get(caminhoDocumento,function(jsonRetorno){
            objA.prop("value",caminhoDocumento);
            objA.prop("target","_blank");
            objA.html('Boletim '+jsonRetorno.content.campoCustomizadoBiblioNumero+'/'+jsonRetorno.content.additionalComments);
        });//get 
        }//if opcao
     },//detalhe

A rotina consegue popular os campos, exceto o tal do campoCustomizadoBiblioNumero, aparecendo

undefined

.

Abandonei o REST e fiz por SOAP.

1 - Criei no Painel de Controle um campo customizado e dei a ele o id numérico, como 1 e fiz uma descrição. Desmarquei a checkbox de modo que não aparecesse em todos os documentos 2 - Peguei o wsdl correspondente, que é webdesk/ECMCustomFieldsService?wsdl. 3 - Criei um arquivo xml com o conteúdo do bloco setDocumentCustomFields. 4 - Fiz uma rotina Javascript recebendo valores de campos hmtl que alimetaram as variáveis login, senha, idEmpresa e as demais, de modo que preenchessem os campos necessário. Assim:


jQuery.ajax({
            url:'/w_biblio_registro/resources/js/xml/setDocumentCustomField.xml',
            async:true,
            type:'GET',
            datatype:'xml',
            success:function (xml2){
        _xml=jQuery(xml2);
        _xml.find('username').text(login);
         _xml.find('password').text(senha);
         _xml.find('companyId').text(idEmpresa);
         //---
         _xml.find('documentCustomFields').find('item').find('companyId').text(idEmpresa);
        _xml.find('documentCustomFields').find('item').find('customFieldId').text(idCampoCustom);
        _xml.find('documentCustomFields').find('item').find('documentId').text(idDocumentoCriado);
        _xml.find('documentCustomFields').find('item').find('valueId').text(numeroPublicacao);
        _xml.find('documentCustomFields').find('item').find('version').text('1000');

                              //---
                              WCMAPI.Create({
                                  url:'/webdesk/ECMCustomFieldsService?wsdl',
                                  contentType:'text/xml;charset=ISO-8859-1',
                                  dataType:'xml',
                                  data:_xml[0],
                                  success:function(data){

                                      FLUIGC.toast({
                                        message: 'Salvou o número da publicação '+numeroPublicacao+' para o arquivo '+idDocumentoCriado+' no campo customizado de nome '+idCampoCustom,
                                        type: 'success'
                                    });//FLUIGC
                                      console.log('Salvou o número da publicação '+numeroPublicacao+' para o arquivo '+idDocumentoCriado+' no campo customizado de nome '+idCampoCustom);

console.log("dentro de salvaNumeroPublicacao: doc criado "+idDocumentoCriado+" idCampoCustom: "+idCampoCustom+" número da pub.: "+numeroPublicacao);
                                     }//success
                              ,
                              error:function(){
                                  FLUIGC.toast({
                                      message: "erro no salvamento do número da publicação "+numeroPublicacao,
                                      type:'danger'
                                          });//fluigc
                              },

                              });//create
            }//success


        });//ajax

5 - Penei muito até descobrir que o XML tem de ser preenchido em todos os campos. Não pode ficar nenhum de fora.

Poderia dar mais detalhes de como você fez isso funcionar. Desde já obrigado.