ODL Aula experimental no Caché
Caché BD OR Módulo STUDIO Interface para ODL Criar projeto Adicionar classes
Classe Pessoa Abstrata Atributos Nome endereço
Classe Pessoa Class User.Pessoa [ Abstract, ProcedureBlock ] { Property nome As %String; Property endereco As Endereco; }
classe Endereço Persistente Atributos Rua Numero Cidade Bairro estado
classe Endereço Class User.Endereco Extends %Persistent [ ClassType = persistent, ProcedureBlock ] { Property rua As %String; Property numero As %String; Property bairro As %String; Property cidade As %String; Property estado As %String; }
Classe PessoaFísica Herança total de Pessoa Atributos Cpf idade
Classe PessoaFísica Class User.PessoaFisica Extends Pessoa [ ProcedureBlock ] { Property cpf As %String [Required]; Property idade As %Integer; method getCPF() as %String Write "CPF: ", ..cpf }
Pessoa Jurídica Herança com Pessoa Relacionamento com Funcionário Uma (pj) para muitos(funcionarios) Atributos CNPJ Inscrição estadual
Pessoa Jurídica Class User.PessoaJuridica Extends User.Pessoa [ ProcedureBlock ] { Property cnpj As %String [ Required ]; Property inscricaoEstadual As %String; Property areaAtuacao As %String; Method getCNPJ() As %String Write "CNPJ: ", ..cnpj } Relationship OsFuncionarios As User.Funcionario [Inverse = AEmpresa, Cardinality = many ];
Funcionário Herança de Pessoa Física Atributo Horário de trabalho ( coleção) Relacionamento com Pessoa Jurídica Muitos funcionários para Uma Empresa
Funcionário Class User.Funcionario Extends User.PessoaFisica [ ProcedureBlock ] { Property horarioDeTrabalho As %List; Relationship AEmpresa As User.PessoaJuridica [ Inverse = OsFuncionarios, Cardinality = one ]; }