Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...


04.1 Disponibilização dos processos

Para disponibilizar os processo para o usuário possa vincular com o documento, basta preencher a propriedade "ProcessValidationTotvsSignActions"

Bloco de código
languagec#
titleCódigo exemplo
collapsetrue
using RM.Imb.Parametros;
using RM.Imb.Recursos;
using RM.Lib.Client;
using RM.Lib.WinForms;

namespace RM.Imb.Aluguel.ContratoLoc
{
  partial class ImbContratoLocAction
  {
    /// <summary>
    /// Inicialização da action de contrato de locação    
    /// </summary>
    private void InitializeComponent()
    {
      components = new System.ComponentModel.Container();

      DataServerName = "ImbContratoLocData";
      FormName = "ImbContratoLocForm";
      // Libera o Totvs Assinatura eletrônica para o dataServer
      AllowTotvsSign = true;

      // Processo de efetivar contrato de locação
      ProcessActions.Add("ImbEfetivarContLocAction", true);


      //Disponibilização de processo na tela de envio de documento do Totvs Assinatura
      ProcessValidationTotvsSignActions.Add(new RMSProcessTotvsSignInfo()
      {
        ActionName = nameof(ImbEfetivarContLocAction),
        LabelProcess = Properties.Resources.SImbCaptinEfetivacaoContratoTotvsSign
      });

      ProcessValidationTotvsSignActions.Add(new RMSProcessTotvsSignInfo()
      {
        ActionName = nameof(ImbContratoLocEscalonamentoAction),
        LabelProcess = Properties.Resources.SImbCaptinEfetivacaoEscalonamentoTovsSign
      });

      ProcessValidationTotvsSignActions.Add(new RMSProcessTotvsSignInfo()
      {
        ActionName = nameof(ImbEfetivarAditivoContLocBaseAction),
        LabelProcess = Properties.Resources.SImbCaptinEfetivacaoAditivoTovsSign
      });

      ProcessValidationTotvsSignActions.Add(new RMSProcessTotvsSignInfo()
      {
        ActionName = nameof(ImbEncerrarContLocAction),
        LabelProcess = Properties.Resources.SImbCaptinEfetivacaoEncerramentoTovsSign
      });
    }


Resultado:

Os processo que foram preenchidos na action na lista ProcessValidationTotvsSignActions são apresentando no cadastro do documento.

...

Observação:

Caso a "action" não possua processos definidos não será exibido a página de seleção, os processos marcados para validar assinatura eletrônica serão gravados na tabela GINTEGRACAOTOTVSSIGNRESTRICAO


04.2 Validação dos processos

Após a exposição dos processo, os mesmo são exibidos para o usuário RM na aba de validações . Mas ainda não é suficiente, pois você tem apenas quais os processo foram marcados pelo usuário para "Validar" na tela do documento. Precisamos dessa informação em camada server para que o analista codifique sua validação. 

Foi disponibilizado método na framework  cujo sua responsabilidade e retornar informações referente documento anexado ao seu "DataServer" Principal. Sendo assim, você pode consumir esse método e implementar sua validação. Você deverá adicionar em seu Facade, uma chamada para o método "RetornarDadosArquivo(actionName, serverName, pkValues)" disponível na interface IGlbTotvsSignMod. E agora e utilizar o seu metodo que criou em seu facade.


Bloco de código
languagec#
titleCódigo exemplo
collapsetrue
using RM.Glb.TotvsSign;
using RM.Glb.TotvsSign.IService;
using RM.Lib.Server;
using System.Collections.Generic;

namespace RM.Imb.Aluguel.Facade
{
  public class ImbAluguelTotvsSignFacade : RMSFacade
  {
    /// <summary>
    /// 
    /// </summary>
    /// <param name="actionName">Action que deseja localizar</param>
    /// <param name="serverName">Nome do dataserver que foi o anexo do documento: Exemplo: ImbContratoLocData</param>
    /// <param name="pkValues">Pk da entidade Principal. Exemplo:1;45 Coligada =1 e CodContrato=45</param>
    /// <returns></returns>
    public List<ImbDocumentSignItem> RetornarDocumentoTotvsSign(string actionName, string serverName, List<string> pkValues)
    {
      List<ImbDocumentSignItem> retorno = new List<ImbDocumentSignItem>();
      using (var totvsSign = CreateModule<IGlbTotvsSignMod>("GlbTotvsSignMod"))
        if (totvsSign.IsConfiguracaoIntegracaoTotvsSign())
        {
          totvsSign.RetornarDadosArquivo(actionName, serverName, pkValues)
            ?.ForEach(doc => retorno.Add(doc));
        }
      return retorno;
    }
  }