-
-
Save brunogasparetto/04d5af4cd4588bd5a59357e8af3bfee3 to your computer and use it in GitHub Desktop.
// Deve-se cadastrar o serviço ECMFolderService pelo painel de controle | |
/** | |
* Cria uma pasta | |
* | |
* Deve-se passar as constraints: | |
* - parentId: ID da pasta pai; | |
* - folderName: Nome da pasta a ser criada; | |
* | |
* O Dataset retorna o ID da pasta criada. | |
* | |
* @param {string[]} fields Campos Solicitados | |
* @param {Constraint[]} constraints Filtros | |
* @param {string[]} sorts Campos da Ordenação | |
* @returns {Dataset} | |
*/ | |
function createDataset(fields, constraints, sorts) { | |
var userLogin = "admin"; | |
var userPassword = "admin"; | |
var userCode = "admin"; // Matrícula | |
var dataset = DatasetBuilder.newDataset(); | |
dataset.addColumn("success"); | |
dataset.addColumn("message"); | |
dataset.addColumn("folderId"); | |
var parentId = parseInt(getConstraintValue(constraints, "parentId")); | |
var folderName = getConstraintValue(constraints, "folderName"); | |
if (!parentId || folderName == "") { | |
dataset.addRow([ | |
"0", | |
"Obrigatório informar as constraints parentId e folderName", | |
"" | |
]); | |
return dataset; | |
} | |
try { | |
var serviceHelper = ServiceManager.getService("ECMFolderService").getBean(); | |
var service = serviceHelper.instantiate("com.totvs.technology.ecm.dm.ws.ECMFolderServiceService").getFolderServicePort(); | |
var result = service.createSimpleFolder( | |
userLogin, | |
userPassword, | |
getValue("WKCompany"), | |
parentId, | |
userCode, | |
folderName | |
); | |
dataset.addRow([ | |
"1", | |
"Pasta Criada", | |
result.getItem().get(0).getDocumentId().toString() | |
]); | |
return dataset; | |
} catch (err) { | |
dataset.addRow([ | |
"0", | |
err, | |
"" | |
]); | |
return dataset; | |
} | |
} | |
/** | |
* Pega o valor inicial de uma constraint | |
* | |
* @param {Constraint[]} constraints | |
* @param {string} field | |
* @returns {string} | |
*/ | |
function getConstraintValue(constraints, field) { | |
for (var i = 0; i < constraints.length; ++i) { | |
if (constraints[i].fieldName == field) { | |
return constraints[i].initialValue; | |
} | |
} | |
return ""; | |
} |
@KevenArbache , no caso do método createSimpleFolder
a segurança é herdada da pasta pai.
Se a intenção é configurar segurança específica para a pasta será necessário utilizar o método createFolder
. Infelizmente nunca utilizei esse método pra orientar como utilizá-lo. Mas na documentação do Fluig e testando pelo SoapUI dá pra ter uma ideia do que é necessário.
@KevenArbache , no caso do método
createSimpleFolder
a segurança é herdada da pasta pai.Se a intenção é configurar segurança específica para a pasta será necessário utilizar o método
createFolder
. Infelizmente nunca utilizei esse método pra orientar como utilizá-lo. Mas na documentação do Fluig e testando pelo SoapUI dá pra ter uma ideia do que é necessário.
entendi bruno, muito obrigado!
Eu tava usando a docApi, pegava os anexos de um processo montava o array de segurança, criava a pasta e jogava os anexos lá dentro, sempre funcionou até descobrir que usuário que não é admin não tem permissão de criar e anexar na pasta, ai precisaria de um serviço para ter um admin.
Então, o problema de usar a SDK é que o usuário que está executando precisa da permissão.
Nessas ocasiões eu acabo utilizando a SDK somente nas Atividades de Serviço com execução Automática, pois aí o usuário utilizado é o admin configurado para a empresa.
Fico grato demais pela sua explicação, me esclareceu bastante!
acredito que irei permitir a gravação de pastas para todos, e a publicação apenas pelo serviço do admin, tem algum exemplo seu que pega anexos de um processo e sobe para uma determinada pasta no ged na atividade de serviço?
Não. Aqui normalmente faço o contrário. Gero algum arquivo em algum serviço externo (pdf, word etc.) e aí preciso anexar no processo. Mas como a hAPI precisa do arquivo no GED eu salvo o arquivo em alguma pasta do GED e depois só adiciono como anexo no processo.
bom dia, excelente código poderia me informar como eu passo as seguranças na pasta?