declare global { enum FormMod { ADD = 'ADD', MOD = 'MOD', VIEW = 'VIEW', NONE = 'NONE', } interface ServiceRequestOptions { companyId: string serviceCode: string endpoint: string method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS' | 'TRACE' | 'CONNECT' timeoutService: string params?: { [key: string]: unknown } | { [key: string]: unknown }[] options?: { encoding: 'UTF-8' | 'ISO-8859-1' mediaType: 'application/json' | 'application/xml' | 'text/plain' | 'multipart/form-data' useSSL: boolean } headers?: { 'Content-Type': 'application/json;charset=UTF-8' | 'application/xml;charset=UTF-8' | 'text/plain;charset=UTF-8' | 'multipart/form-data' } } interface WKValues { WKDef: string WKVersDef: string WKNumProces: string WKNumState: string WKCompany: string WKUser: string WKUserComment: string WKCompletTask: boolean WKNextState: string WKCardId: string WKFormId: string WKIdentityCompany: string WKMobile: string WKIsService: string WKUserLocale: string WKManagerMode: string WKReplacement: string WKIsTransfer: string WKCurrentMovto: string WKActualThread: string } /** * GlobalVars * * Objeto que armazena variáveis globais do workflow, permitindo o acesso e manipulação de informações compartilhadas entre diferentes partes do sistema. * @example * // Definindo uma variável global * globalVars.put("varName", "varValue"); * * // Acessando uma variável global * const processo = globalVars.get("varName"); */ const globalVars: java.util.HashMap /** * Obtém o valor de uma variável global do workflow * @param key - Chave da variável global do workflow: * - WKDef: Código do processo * - WKVersDef: Versão do processo * - WKNumProces: Número da solicitação de processo * - WKNumState: Número da atividade * - WKCompany: Número da empresa * - WKUser: Código do usuário corrente * - WKUserComment: Comentário do usuário * - WKCompletTask: Se a tarefa foi completada * - WKNextState: Número da próxima atividade (destino) * - WKCardId: Código do registro de formulário do processo * - WKFormId: Código do formulário do processo * - WKIdentityCompany: Identificador da empresa selecionada para Experiências de uso TOTVS * - WKMobile: Identifica se a ação foi realizada através de um dispositivo mobile * - WKIsService: Identifica se a solicitação de cancelamento foi realizada através de um serviço * - WKUserLocale: Identifica o idioma corrente do usuário * - WKManagerMode: Identifica se o processo está sendo movimentado pela visão do gestor * - WKReplacement: Código do usuário substituto * - WKIsTransfer: Permite verificar se o usuário está ou não transferindo uma tarefa * - WKCurrentMovto: Permite a movimentação do processo * - WKActualThread: Retorna a Thread atual do processo * @returns Valor da variável global do workflow */ function getValue( key: | 'WKDef' | 'WKVersDef' | 'WKNumProces' | 'WKNumState' | 'WKCompany' | 'WKUser' | 'WKUserComment' | 'WKCompletTask' | 'WKNextState' | 'WKCardId' | 'WKFormId' | 'WKIdentityCompany' | 'WKMobile' | 'WKIsService' | 'WKUserLocale' | 'WKManagerMode' | 'WKReplacement' | 'WKIsTransfer' | 'WKCurrentMovto' | 'WKActualThread' ): string /** * Obtém informações da API de Workflow */ class hAPI { /** * Permite acessar o valor de um campo do formulário do processo * @param nomeCampo - Nome do campo do formulário */ static getCardValue(nomeCampo: string): string /** * Permite definir o valor de um campo do formulário do processo * @param nomeCampo - Nome do campo do formulário * @param valor - Valor a ser definido no campo do formulário */ static setCardValue(nomeCampo: string, valor: string): string /** * Adiciona um filho no formulário pai e filho do processo * @param tableName - Nome da tabela do formulário * @param cardData - Mapa com os campos do filho e seus valores * @example * const cardData = new java.util.HashMap(); * cardData.put("NOME", "João"); * cardData.put("IDADE", "30"); * hAPI.addCardChild("TABELA_FILHOS", cardData); */ static addCardChild(tableName: string, cardData: java.util.HashMap): void static removeCardChild(tableName: string, index: number): void static setAutomaticDecision(taskNumber: number, responsible: java.util.ArrayList, comment: string): void static getActiveStates(): java.util.ArrayList static getParentInstance(processInstanceId: number): number static getChildrenInstances(processInstanceId: number): java.util.List static setDueDate(processId: number, numThread: number, userId: string, dueDate: Date, timeInSeconds: number): void static transferTask(users: java.util.ArrayList, comment: string, numThread?: number): void static setTaskComments(userId: string, processId: number, threadId: number, comment: string): void static getAdvancedProperty(nomePropriedade: string): string static getCardData(numProcesso: number): java.util.HashMap static startProcess( processId: string, chosenState: number, colleagues: java.util.ArrayList, comments: string, completeTask: boolean, cardData: java.util.HashMap, managerMode: boolean ): java.util.HashMap static calculateDeadLineHours(deadlineDate: Date, seconds: number, deadlineInHours: number, periodId: string): unknown static calculateDeadLineTime(deadlineDate: Date, seconds: number, deadlineInHours: number, periodId: string): unknown static setColleagueReplacement(responsible: string): void static getUserTaskLink(numAtividade: number): string static getActualThread(companyNumber: number, processNumber: number, activityNumber: number): number static createAdHocTasks(processoId: number, sequenciaId: number, assunto: string, detalhamento: string, tarefas: unknown[]): void static listAttachments(): java.util.List static publishWorkflowAttachment(documentDto: unknown): void static attachDocument(documentId: number): void /** * Retorna um mapa contendo os nomes e valores dos campos filhos de uma tabela pai. * @param tableName - Nome da tabela pai dos campos filhos a serem retornados. * @returns Um mapa onde as chaves são os nomes dos campos filhos e os valores são os valores correspondentes desses campos. * @example * // Supondo que exista uma tabela pai chamada "TABELA_FILHOS" com campos filhos "NOME" e "IDADE": * const childrenData = hAPI.getChildrenFromTable("TABELA_FILHOS"); * // childrenData será um mapa como: { "NOME": "João", "IDADE": "30" } */ static getChildrenFromTable(tableName: string): java.util.HashMap /** * Retorna um array contendo os índices que contenham campos filhos na tabela pai especificada. * @param tableName - Nome da tabela pai dos campos filhos a serem retornados. * @returns Um array de números representando os índices dos campos filhos na tabela pai. * @example * // Supondo que exista uma tabela pai chamada "TABELA_FILHOS" com campos filhos "NOME" e "IDADE": * const childrenIndexes = hAPI.getChildrenIndexes("TABELA_FILHOS"); * // childrenIndexes será um array como: [0, 1] */ static getChildrenIndexes(tableName: string): number[] static getAvailableStatesDetail( companyId: number, userId: string, processId: number, processInstanceId: number, threadSequenceId?: number ): unknown } class JSONUtil { static toJSON(data: object): java.lang.String } // ######################################################################### // ########################## Eventos de Formulário ######################## // ######################################################################### class FormController { getCardData(): java.util.HashMap getCompanyId(): number getDocumentId(): number getVersion(): number getCardIndex(): number setEnabled(nomeCampo: string, habilita: boolean, protegido: boolean): void getEnabled(nomeCampo: string): boolean setValue(nomeCampo: string, valor: string): void getValue(nomeCampo: string): string setVisible(nomeCampo: string, visible: boolean): void setVisibleById(idDoCampo: string, visible: boolean): void setShowDisabledFields(habilita: boolean): void setHidePrintLink(habilita: boolean): void setHideDeleteButton(habilita: boolean): void setEnhancedSecurityHiddenInputs(proteger: boolean): void getFormMode(): FormMod isHidePrintLink(): boolean getChildrenFromTable(tableName: string): java.util.HashMap getChildrenIndexes(tableName: string): number[] isHideDeleteButton(): boolean getMobile(): boolean isVisible(nomeCampo: string): boolean isVisibleById(id: string): boolean } class customHTML { append(html: string): void } export type DisplayFieldsHandler = (form: FormController, customHTML: customHTML) => void export type EnableFieldsHandler = (form: FormController) => void export type InputFieldsHandler = (form: FormController) => void export type ValidateFormHandler = (form: FormController) => void // ######################################################################### // ####################### Definição de Log ################################ // ######################################################################### class log { static dir(object: object): void static info(message: string): void static error(message: string): void static warn(message: string): void static debug(message: string): void } // ######################################################################### // ########################## ServiceManager Types ######################### // ######################################################################### // Mapeamento de classes Java comuns no Fluig interface ClassNameMap { 'java.util.ArrayList': java.util.ArrayList 'java.util.HashMap': java.util.HashMap 'java.util.List': java.util.List 'java.util.Collection': java.util.Collection 'java.util.Map': java.util.Map 'java.lang.String': java.lang.String 'java.lang.Integer': java.lang.Integer 'java.lang.Long': java.lang.Long 'java.lang.Object': java.lang.Object 'java.sql.ResultSet': java.sql.ResultSet 'java.sql.Date': java.sql.Date 'java.sql.Timestamp': java.sql.Timestamp 'javax.naming.InitialContext': javax.naming.InitialContext 'com.fluig.sdk.api.FluigAPI': com.fluig.sdk.api.FluigAPI 'com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService': com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService 'com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService': com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService 'com.totvs.technology.ecm.workflow.ws.Attachment': com.totvs.technology.ecm.workflow.ws.Attachment 'com.totvs.technology.ecm.workflow.ws.AttachmentArray': com.totvs.technology.ecm.workflow.ws.AttachmentArray 'com.totvs.technology.ecm.workflow.ws.ProcessDefinitionDto': com.totvs.technology.ecm.workflow.ws.ProcessDefinitionDto 'com.totvs.technology.ecm.workflow.ws.ProcessDefinitionDtoArray': com.totvs.technology.ecm.workflow.ws.ProcessDefinitionDtoArray 'com.totvs.technology.ecm.workflow.ws.ProcessDefinitionVersionDto': com.totvs.technology.ecm.workflow.ws.ProcessDefinitionVersionDto 'com.totvs.technology.ecm.workflow.ws.ProcessDefinitionVersionDtoArray': com.totvs.technology.ecm.workflow.ws.ProcessDefinitionVersionDtoArray 'com.totvs.technology.ecm.workflow.ws.ProcessStateDto': com.totvs.technology.ecm.workflow.ws.ProcessStateDto 'com.totvs.technology.ecm.workflow.ws.ProcessStateDtoArray': com.totvs.technology.ecm.workflow.ws.ProcessStateDtoArray 'com.totvs.technology.ecm.workflow.ws.ProcessAttachmentDto': com.totvs.technology.ecm.workflow.ws.ProcessAttachmentDto 'com.totvs.technology.ecm.workflow.ws.ProcessAttachmentDtoArray': com.totvs.technology.ecm.workflow.ws.ProcessAttachmentDtoArray 'com.totvs.technology.ecm.workflow.ws.ProcessTaskAppointmentDto': com.totvs.technology.ecm.workflow.ws.ProcessTaskAppointmentDto 'com.totvs.technology.ecm.workflow.ws.ProcessTaskAppointmentDtoArray': com.totvs.technology.ecm.workflow.ws.ProcessTaskAppointmentDtoArray 'com.totvs.technology.ecm.workflow.ws.KeyValueDto': com.totvs.technology.ecm.workflow.ws.KeyValueDto 'com.totvs.technology.ecm.workflow.ws.KeyValueDtoArray': com.totvs.technology.ecm.workflow.ws.KeyValueDtoArray 'com.totvs.technology.ecm.workflow.ws.DeadLineDto': com.totvs.technology.ecm.workflow.ws.DeadLineDto 'com.totvs.technology.ecm.workflow.ws.ProcessHistoryDto': com.totvs.technology.ecm.workflow.ws.ProcessHistoryDto 'com.totvs.technology.ecm.workflow.ws.ProcessHistoryDtoArray': com.totvs.technology.ecm.workflow.ws.ProcessHistoryDtoArray 'com.totvs.technology.ecm.workflow.ws.AvailableUsersDto': com.totvs.technology.ecm.workflow.ws.AvailableUsersDto 'com.totvs.technology.ecm.workflow.ws.ColleagueDto': com.totvs.technology.ecm.workflow.ws.ColleagueDto 'com.totvs.technology.ecm.dm.ws.ECMCardServiceService': com.totvs.technology.ecm.dm.ws.ECMCardServiceService 'com.totvs.technology.ecm.dm.ws.CardDto': com.totvs.technology.ecm.dm.ws.CardDto 'com.totvs.technology.ecm.dm.ws.CardDtoArray': com.totvs.technology.ecm.dm.ws.CardDtoArray 'com.totvs.technology.ecm.dm.ws.CardFieldDto': com.totvs.technology.ecm.dm.ws.CardFieldDto 'com.totvs.technology.ecm.dm.ws.CardFieldDtoArray': com.totvs.technology.ecm.dm.ws.CardFieldDtoArray 'com.totvs.technology.ecm.dm.ws.ApproverDto': com.totvs.technology.ecm.dm.ws.ApproverDto 'com.totvs.technology.ecm.dm.ws.ApproverDtoArray': com.totvs.technology.ecm.dm.ws.ApproverDtoArray 'com.totvs.technology.ecm.dm.ws.DocumentSecurityConfigDto': com.totvs.technology.ecm.dm.ws.DocumentSecurityConfigDto 'com.totvs.technology.ecm.dm.ws.DocumentSecurityConfigDtoArray': com.totvs.technology.ecm.dm.ws.DocumentSecurityConfigDtoArray 'com.totvs.technology.ecm.dm.ws.RelatedDocumentDto': com.totvs.technology.ecm.dm.ws.RelatedDocumentDto 'com.totvs.technology.ecm.dm.ws.RelatedDocumentDtoArray': com.totvs.technology.ecm.dm.ws.RelatedDocumentDtoArray 'com.totvs.technology.ecm.dm.ws.Attachment': com.totvs.technology.ecm.dm.ws.Attachment 'com.totvs.technology.ecm.dm.ws.AttachmentArray': com.totvs.technology.ecm.dm.ws.AttachmentArray 'com.totvs.technology.ecm.dm.ws.WebServiceMessage': com.totvs.technology.ecm.dm.ws.WebServiceMessage 'com.totvs.technology.ecm.dm.ws.WebServiceMessageArray': com.totvs.technology.ecm.dm.ws.WebServiceMessageArray 'com.totvs.technology.ecm.foundation.ws.ECMColleagueReplacementServiceService': com.totvs.technology.ecm.foundation.ws.ECMColleagueReplacementServiceService 'com.totvs.technology.ecm.foundation.ws.ColleagueReplacementDto': com.totvs.technology.ecm.foundation.ws.ColleagueReplacementDto 'com.totvs.technology.ecm.foundation.ws.ColleagueReplacementDtoArray': com.totvs.technology.ecm.foundation.ws.ColleagueReplacementDtoArray } class ServiceManager { static getService(serviceName: string): Service } class Service { getBean(): { /** * Instancia uma classe Java com tipagem específica baseada no nome da classe * @param className Nome completo da classe Java * @returns Instância da classe com tipagem apropriada * @example * const arrayList = service.getBean().instantiate('java.util.ArrayList'); * arrayList.add("item"); // Métodos do ArrayList disponíveis * * const hashMap = service.getBean().instantiate('java.util.HashMap'); * hashMap.put("key", "value"); // Métodos do HashMap disponíveis * * const fluigAPI = service.getBean().instantiate('com.fluig.sdk.api.FluigAPI'); * fluigAPI.getUserService(); // Métodos da FluigAPI disponíveis * * const workflowService = service.getBean().instantiate('com.totvs.technology.ecm.workflow.ws.ECMWorkflowEngineServiceService'); * workflowService.startProcess(...); // Métodos do ECMWorkflowEngineService disponíveis */ instantiate(className: T): ClassNameMap[T] instantiate(className: string): T } } /** * DatasetRequestParams * * Interface que define os parâmetros de uma requisição de dataset em scripts de workflow, * incluindo informações sobre o processo, usuário e dados do formulário, * permitindo a criação de datasets personalizados com base no contexto do workflow. * @example * var datasetRequestParams = { requestId: getValue('WKNumProces'), cardId: parseInt(getValue('WKCardId')), companyId: parseInt(getValue('WKCompany')), userId: getValue('WKUser'), activityId: parseInt(getValue('WKNumState')), cardData: hAPI.getCardData(parseInt(getValue('WKNumProces'))), }; */ interface DatasetRequestParams { requestId: string cardId: number companyId: number userId: string activityId: number cardData: java.util.HashMap } } export {}