Isox.Admi002 (Isox v0.1.0)

Copy Markdown View Source

Modelo ISO 20022 do admi.002 (recusa de mensagem) — resposta de erro da ICOM referenciando a mensagem recusada por RltdRef/Ref, que é o PI-ResourceId devolvido no ingresso daquela mensagem (Manual VIII).

Só existe uma versão no catálogo (1.5) — sem divergência a testar, mas encode/3 mantém o parâmetro de versão pela mesma razão do ADR 0002: a unidade de versionamento é {mensagem, versão}, não "o catálogo".

Mesma validação em duas camadas dos outros dois: encode/3 confere obrigatoriedade do modelo e reaproveita o decode do módulo gerado pra pattern/enum/tamanho, sem duplicar regra.

Summary

Functions

Decodifica um XML de admi.002 de volta para a struct.

Monta o XML (envelope completo, AppHdr + Document) para a versão dada.

Types

t()

@type t() :: %Isox.Admi002{
  addtl_data: String.t() | nil,
  err_lctn: String.t() | nil,
  ref: String.t(),
  rjctg_pty_rsn: String.t(),
  rjctn_dt_tm: DateTime.t() | nil,
  rsn_desc: String.t() | nil
}

version()

@type version() :: :v1_5

Functions

decode(xml)

@spec decode(binary()) :: {:ok, t(), version()} | {:error, term()}

Decodifica um XML de admi.002 de volta para a struct.

encode(message, header, version)

@spec encode(t(), Isox.AppHdr.t(), version()) ::
  {:ok, binary()} | {:error, String.t()}

Monta o XML (envelope completo, AppHdr + Document) para a versão dada.