Looplex Knowledge Base
Document Info
O documentInfo recupera informações sobre um documento gerado na plataforma (como por exemplo a versão ou o autor). Pode ser usado para recuperar informação do documento corrente ou de uma lista de documentos de um template. No segundo caso, será necessário utilizar o tipo Document para selecionar o template que deseja recuperar as informações.
Note que as informações recuperadas são dos documentos gerados na plataforma, não informações internas do template. Dessa forma, não é possível, via documentInfo, acessar variáveis de outro documento.
Formato:
<data>.documentInfo(format) documentInfo(<data>, format)
Parâmetros:
- data: É sempre um objeto, ou seja, é uma variável do tipo Struct. O Identifier da estrutura é de sua escolha, mas a estrutura deve conter os fields:
[name] : String
,[id] : Integer
,[version] : Integer
,[author] : String
,[link] : String
,[state] : String
. Veja um exemplo abaixo:
struct[DocumentInfo] { fields { +[name] : String, +[id] : Integer, +[version] : Integer, +[author] : String, +[link] : String, +[state] : String } }
Onde:
[name]
: Recebe o nome do template;
[id]
: Recebe o ID interno do template em nossa plataforma;
[version]
: Recebe a versão do template no banco de dados;
[author]
: Recebe o nome do usuário que gerou o documento na plataforma;
[link]
: Recebe um link para download do documento;
[state]
: Recebe o estado do template na plataforma, podendo ser: OPEN, LOCKED, COMPLETED, HIDE, REMOVED, BUGGED - para documentos normais; ACTION_ON, ACTION_OFF - para documentos com schedules; e PROTOCOL_START, PROTOCOL_PENDING, PROTOCOLLED, PROTOCOL_REQUESTED, PROTOCOL_ERROR - para documentos envolvidos em protocolação eletrônica.
- format: É um parâmetro que varia de acordo com o uso. Se desejar recuperar informações do documento corrente, format deve ser (1) "pdf" ou "docx", correspondendo ao formato do arquivo que será gerado e criado o link para download, ou ainda, (2) um identificador de MarkupText do WebLang (como no tube EvalMarkupFile), podendo inclusive ser exportado para "pdf" caso deseje, com a opção "Identificador do Markup:pdf"; Para recuperar informações de outro documento, format deve ser a variável Document correspondente ao template a ser inspecionado mais o formato do arquivo desejado. Veja os exemplos abaixo:
<objReceiver>.documentInfo("pdf") documentInfo(<objReceiver>, "pdf") <objReceiver>.documentInfo(<varDocument>, "pdf") documentInfo(<objReceiver>, <varDocument>, "pdf") <objReceiver>.documentInfo("Nome do Arquivo WebLang") documentInfo(<objReceiver>, "Nome do Arquivo WebLang")
Retorno:
Devolve as informações correspondentes ao documento. As informações ficam armazenadas na estrutura criada.
Exemplo:
template[TEMP_DocumentInfo] { metainfo { language = "pt_BR" name = "Template documentInfo" declarations { struct[DocumentInfo] { fields { +[name] : String, +[id] : Integer, +[version] : Integer, +[author] : String, +[link] : String, +[state] : String } } } } body { declarations { branch[BRC_Objeto_InfoDoTemplate] { description = "A variável <infoDocumento> armazena a informação do template e \"pdf\" seleciona o formato do arquivo que será gerado para download. Se \"pdf\" não for usado, não será gerado um link para download" declarations { -<infoDocumento> : DocumentInfo } operations { <infoDocumento>.documentInfo("pdf"), print bold("Informações do documento corrente:\n"), print "> name: " & <infoDocumento.name> & "\n", print "> id: " & <infoDocumento.id> & "\n", print "> version: " & <infoDocumento.version> & "\n", print "> author: " & <infoDocumento.author> & "\n", print "> link: " & <infoDocumento.link> & "\n", print "> state: " & <infoDocumento.state> & "\n\n" } }, branch[BRC_Objeto_InfoDeOutroDocumento] { description = "Neste exemplo é acrescentado a variável <documentoEscolhido>. Essa variável recebe o template selecionado pelo suário. A variável Document pode ser até mesmo o próprio template." declarations { -<infoDeOutroDoc> : DocumentInfo, +<documentoEscolhido> : Document[TEMP_MeuTemplateTeste] { name = "Variável Document" } } operations { <infoDeOutroDoc>.documentInfo(<documentoEscolhido>, "pdf"), print bold("Informações do outro documento selecionado:\n"), print "> name: " & <infoDeOutroDoc.name> & "\n", print "> id: " & <infoDeOutroDoc.id> & "\n", print "> version: " & <infoDeOutroDoc.version> & "\n", print "> author: " & <infoDeOutroDoc.author> & "\n", print "> link: " & <infoDeOutroDoc.link> & "\n", print "> state: " & <infoDeOutroDoc.state> & "\n\n" } }, branch[BRC_Vetor_InfoOutrosDocumentos] { description = "Neste outro exemplo, a variável <infoDosDocumentos> recebe as informações de documentos selecionados pelo usuário no vetor de Document |documentosEscolhidos|." declarations { -<infoDosDocumentos> : DocumentInfo, +|documentosEscolhidos| : Vector[Document[TEMP_MeuTemplateTeste]] { name = "Vetor de Document" } } operations { print bold("Informações de outro documento:\n"), foreach(<documento> IN |documentosEscolhidos|) { <infoDosDocumentos>.documentInfo(<documento>, "pdf"), print "> name: " & <infoDosDocumentos.name> & "\n", print "> id: " & <infoDosDocumentos.id> & "\n", print "> version: " & <infoDosDocumentos.version> & "\n", print "> author: " & <infoDosDocumentos.author> & "\n", print "> link: " & <infoDosDocumentos.link> & "\n", print "> state: " & <infoDosDocumentos.state> & "\n\n" } } } } operations { use BRC_Objeto_InfoDoTemplate, use BRC_Objeto_InfoDeOutroDocumento, use BRC_Vetor_InfoOutrosDocumentos } }}