ctp 06 advpl ii - mvc

43
ADVPL II - MVC Totvs Centro de Desenvolvimento São Paulo 2014

Upload: blackvalcimar

Post on 09-Sep-2015

229 views

Category:

Documents


10 download

DESCRIPTION

MVC ADVPL

TRANSCRIPT

  • ADVPL II - MVC

    Totvs Centro de Desenvolvimento So Paulo 2014

  • ADVPL II - MVC

    ndice

    I) Framework

    II) Informaes tcnicas

    III) Contedo Programtico

    IV) Exerccios

    V) MVC Designer

    VI) Reviso

    2

  • Framework

  • 4

    ADVPL II - MVC

    MVC Nossa inspirao

    Model

    View Controller

    Ao do usurio

    Seleciona a View

    Muda estado

    Consulta estado

    Notifica atualizao

    O Model representa as informaes do domnio do aplicativo e fornece funes para operar os dados, isto , ele que expe as funcionalidade do aplicativo. O Model tambm responsvel por notificar a View quando os dados forem alterados.

    A View, objetivamente, deve renderizar o Model e possibilitar a interao do usurio, bem como consultar ao Model quando este notific-la de que houve alteraes nos dados afim de manter a consistncia entre ambos.

    O Controller, o maestro da orquestra, responde s aes dos usurios, possibilita mudanas no Model e seleciona a View correspondente.

    Nada to fcil quanto parece, nem to difcil quanto a explicao do manual - Murphy

  • 5

    ADVPL II - MVC

    Nosso modelo

    GD

    P

    Analista

    Business Objects

    SchedDef

    Regras de negcio Persistncia (FWCommit)

    Designer

    ViewDef

    Toda soluo cria novos problemas - Murphy

    ModelDef

    ReportDef MenuDef

    Fram

    ewo

    rk

    FwFormField Enchoice/GetFixo

    FwFormGrid GetDados

    Smartclient DHTML Outros front-end

    FwFormContainer Toolbar/Painis

    FwFormBrowse Browse

  • 6

    ADVPL II - MVC

    View

    Programe um vez, reutilize muitas...

    Define como o usurio interage com o modelo de dados. Capturando os dados informados pelo usurio, fornecendo ao BO e apresentando o resultado.

    A interface pode ser baseada totalmente ou parcialmente em um meta-dados, permitindo:

    Reaproveitamento do cdigo da interface Simplicidade no desenvolvimento de interfaces complexas Agilidade no desenvolvimento Personalizao de interface sem efeito-colateral. O usurio v, aquilo que quer! Mais de uma interface por BO, poderemos ter interfaces diferentes para cada variao de um segmento de mercado como o varejo.

  • 7

    ADVPL II - MVC

    FWBrowse - View

    Possibilitando a reutilizao de cdigo de interface

    Classe padro dos Grids

    Possui todas as funcionalidades de Grid, como pesquisa, filtros, cores, etc...

    No possui dependncia do dicionrio de dados ou ambiente Protheus

    FWBrowse

    Classe padro do Browse Protheus

    Possui os botes laterais de acesso e o rodap (footer) com os principais dados do formulrio

    No possui dependncia do dicionrio de dados ou ambiente Protheus

    FWFormBrowse

    Classe padro do Browse Protheus com uso de dicionrio de dados.

    FWMBrowse

    Classe padro de Browse de seleo do Protheus

    FWMarkBrowse

  • 8

    ADVPL II - MVC

    FWBrowse - View

    Possibilitando a reutilizao de cdigo de interface

    FWBrowse FWFormBrowse FWMBrowse

    Dicionrio de dados

  • 9

    ADVPL II - MVC

    FWFormField - View

    Possibilitando a reutilizao de cdigo de interface

    Desenvolvido para: Substituir todos os componentes de edio de campos Possibilitar sua utilizao em qualquer container de interface Reduzir o tempo de manuteno, em caso de adio de um novo requisito Ser independente do ambiente Microsiga Protheus

    Melhorias implementas: Novos padres de agrupamento (Groups e Docks) Novo padro de orientao de ttulos dos campos ( esquerda ou acima) Padro de fontes personalizvel Deficiente visual Melhor aproveitamento da rea de visualizao (no estar limitada a duas colunas) Novos componentes (Radio e Edio de Imagem)

    FWFo

    rmFi

    eld

    Modelo1 Modelo 2 Modelo 3

    Modelo X Pergunte LookUp (F3)

  • 10

    ADVPL II - MVC

    FWFormField

    FWFormField - View

    Possibilitando a reutilizao de cdigo de interface

    FWEditPanel

  • 11

    ADVPL II - MVC

    FWFormGrid - View

    Possibilitando a reutilizao de cdigo de interface

    Desenvolvido para: Substituir todos os componentes de edio em grid Possibilitar sua utilizao em qualquer container de interface Utilizar como base as caractersticas do componentes FWBrowse Ser independente do ambiente Microsiga Protheus

    Melhorias implementas:

    Todas as relacionadas no FWBrowse

    FWFo

    rmG

    rid

    Modelo2 Modelo 3 Modelo X

  • 12

    ADVPL II - MVC

    FWFormGrid - View

    Possibilitando a reutilizao de cdigo de interface

    FWBrowse FWFormGridView

    FWFormFieldView

  • 13

    ADVPL II - MVC

    FWFormContainer - View

    Possibilitando a reutilizao de cdigo de interface

    Desenvolvido para: Substituir a EnchoiceBar Possibilitar a diviso dos componentes de meta-dado em containers Ser independente do ambiente Microsiga Protheus

    Melhorias implementas:

    Possibilidade de rearranjo da interface sem necessidade de codificao pelo cliente

    FWFo

    rmC

    on

    tain

    er

    Modelo2

    Modelo 3 Modelo X

    EnchoiceBar/ToolBar

    Modelo1

  • 14

    ADVPL II - MVC

    FWFormContainer - View

    Possibilitando a reutilizao de cdigo de interface

    Box

    Box

    FWFormCursor

  • 15

    ADVPL II - MVC

    ModelDef

    Mais recursos, menos esforo

    Define o modelo da estrutura e persistncia de dados, utilizando o modelo padronizado de codificao

    Possui as regras de validao definidas pelo analista, independentes dos eventos da interface. Esta independncia permite a reutilizao de cdigo, performance e previsibilidade de comportamento.

    Este modelo de codificao garante que todos os programas de edio tenham os recursos, abaixo, sem a necessidade adicional de codificao:

    Web Services Rotina automtica Ponto de integrao, comum, entre as GDPs Ambiente interativo para execuo de teste funcional Pontos de entrada padronizados. Relatrio personalizvel Importao/Exportao de dados ( XML/XSD )

  • Informaes tcnicas

  • 17

    ADVPL II - MVC

    Diagrama de Classe Main Function ModelDef ViewDef

    +GetModel ()

    +AddRules()

    +GetFormData()

    +LoadXmlData()

    +SetRelation()

    +SetValue()

    +GetValue()

    +SetOperation()

    +VldData()

    +CommitData()

    +CancelData()

    -cId

    -bPost

    -bPre

    -bCommit

    -bCancel

    -aModelStruct

    -aModeRules

    FWFormModel

    +AddFields()

    +AddGrid()

    MPFormModel

    +SetModel()

    +SetOwner()

    +SetOwnerView()

    +MakeControlBar()

    +GetValue()

    +getValidMsg()

    +AddField()

    +AddGrid ()

    +Activate ()

    +DeActivate()

    +setOperation()

    +EnableControlBar()

    +createVerticalBox()

    +createHorizontalBox()

    FwFormView

    +SetAlias()

    +SetLocate()

    +Activate()

    +AddLegend()

    FWMBrowse

    +addField()

    +RemoveField()

    +LoadFields()

    +addTrigger()

    +LoadTrigger()

    +getFields()

    -aFields

    -aTriggers

    FWFormModelStruct

    +addField()

    +RemoveField()

    +LoadFields()

    +getFields()

    -aFields

    -aTriggers

    FWFormViewStruct

  • Contedo Programtico

  • 19

    ADVPL II - MVC

    Contedo Programtico Browse

    Criar Browse (FwMBrowse)

    Criar Legendas (AddLegend)

    Validao de Ativao do Model (SetVldActive)

    Criar Filtro (SetFilterDefault)

    Criar Browse com marcao (MarkBrowse)

    Modelo de Dados (MODEL)

    Criar Estrutura com 1 Tabela (Antigo Modelo 1) (FormField)

    Criar Estrutura "Pai/Filho" (Antigo Modelo 3) (FormField e FormGrid)

    Criar Estrutura "Pai/Filho/Neto" (Antigo Modelo X)

    Ps Validao do Model (Antigo TudoOK)

    Ps Validao da Linha (Antigo LinhaOK)

    Validar deleo da Linha

    Gravar dos Dados Manualmente (FWCommit)

    Criar de Campos de Total e/ou Contadores

    Criar de Regras de Preenchimento (AddRules)

  • 20

    ADVPL II - MVC

    Contedo Programtico

    Visualizao dos Dados (VIEW)

    Criar botes (AddUserButton)

    Criar Folder(s) no fonte (CreateFolder)

    Usar Outros Objetos no MVC (AddOtherObject)

    FORMGRID

    GetValue / SetValue / LoadValue

    AddLine / DeleteLine / UnDeleteLine

    IsDeleted / IsUpdated / IsInserted

    GoLine

    GetQtdLin

    SetNoDeleteLine / SetNoUpdateLine / SetNoInsertLine

    Estrutura de Campos (STRUCT)

    Selecionar campos para a estrutura

    Criar estrutura manualmente

  • 21

    ADVPL II - MVC

    Contedo Programtico

    Geral

    Utilizar operao de outra View (FwExecView)

    Uso do Model de Uma Rotina (Antiga Rotina Automtica)

    Pontos de Entrada

    Uso do WebService

  • Exerccios

  • 23

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 24

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 25

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 26

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 27

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 28

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 29

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 30

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 31

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 32

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 33

    ADVPL II - MVC

    MER Tabelas dos Fontes

  • 34

    ADVPL II - MVC

    Exerccios Aula 01

    Criar a rotina EXERC01, EXERC02 e EXERC03 para efetuar a manuteno (Incluso, Alterao, Excluso, etc. ) das tabelas: TURMAS (ZB1), ALUNOS ( ZB2) e DISCIPLINAS (ZB3). Dica: Estrutura com tabela simples.

    Criar a rotina EXERC04 para efetuar a manuteno (Incluso, Alterao, Excluso, etc. ) CABEALHO TURMA/ALUNO (ZB5) e ALUNOS TURMA/ALUNO (ZB6). Dica: Estrutura Pai/Filho.

  • 35

    ADVPL II - MVC

    Exerccios Aula 02

    Alterar a rotina EXERC04 para:

    Lanar notas acrescentando a tabela NOTAS TURMA x ALUNO (ZB7).

    Verificar se as notas so vlidas ( >= 0 e

  • 36

    ADVPL II - MVC

    Exerccios Aula 03

    Alterar EXERC04 para s deixar alterar turmas com a situao ATIVA

    Alterar EXERC04 para exibir mltiplas browses com as tabelas CABEALHO TURMA/ALUNO (ZB5) e ALUNOS TURMA/ALUNO (ZB6) e NOTAS TURMA x ALUNO (ZB7).

  • 37

    ADVPL II - MVC

    Exerccios Aula 04

    Alterar EXERC04 para exibir a informao de quantidade de linhas lanadas.

    Criar a rotina EXERC05 utilizando uma Markbrowse na tabela ALUNOS( ZB2). Utilizar o campo ZB2_OK como marcador. Criar uma rotina de processamento que exiba a quantidade de alunos marcados.

  • MVC Designer

  • 39

    ADVPL II - MVC

    Num objetivo de facilitar o desenvolvimento, deixando o mais fcil e mais rpido, foi pensado em desenvolver um RAD(Rapid Application Development), que possibilita a construo de rotina MVC, de maneira fcil e intuitiva.

  • 40

    ADVPL II - MVC

    As principais caractersticas do desenhador j disponvel:

    Desenvolvimento do Model;

    Leitura do dicionrio de dados para construo de modelos baseados no mesmo.

    Desenvolvimento do View;

    Renderizao da View em Preview;

    Leitura do cdigo fonte;

    OutLine;

    Folding para funes;

    TextOver :

    Para o CH do MVCDEF;

    Para defines do prprio fonte;

    TextOver de String de Traduo;

    Deteco de erro em tempo de edio do fonte, sem necessidade de compilao;

    AutoComplete das funes e mtodos do MVC;

    Leitura de models via FWFormLoad, de outros fontes;

  • Reviso

  • 42

    ADVPL II - MVC

    Estrutura de programas da Linha Microsiga Protheus Documentao de cabealhos

    Nomenclatura de fonte XXXOYYY , onde:

    XXX=Mdulo

    O=Operao ( X=Biblioteca do mdulo )

    (*) Bibliotecas genricas devem ser aprovadas por Framework.

    Formulrios:

    FWBrowse / FWMarkbrowse

    MenuDef

    ModelDef

    ViewDef

    Validaes

    Relatrios:

    ReportDef

    Rotinas de processamento:

    SchedDef

    FWGridProcess

  • ADVPL II - MVC

    Questes

    Palestrante

    Departamento

    [email protected]

    43