Tutoriel Alfresco et jBoss BPM : exemple d'implémentation d'un workflow avancé de gestion des dossiers de crédit


précédentsommairesuivant

IV. Modélisation Alfresco du dossier de Crédit

IV-A. Modèle de donnée du dossier de crédit

Figure 2 : Entity model
Figure 2 : Entity model

Dans ce diagramme :

  • CreditRecord représente le dossier de crédit ;
  • GenerateContrat représente le contrat généré ;
  • ScanContrat représente le contrat scanné ;
  • ScanPaySlip représente la fiche de paie ;
  • ScanTaxSlip représente la fiche d'impôt.

IV-B. Alfresco Content Type Model

Nous écrivons ici le content type model de chaque entité citée ci-dessus (paragraphe IV.1) à l'aide du dictionnaire de données et du content type model de base de Alfresco.

  • Importation des modèles d'Alfresco
 
Sélectionnez
<imports>
     <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
</imports>
  • La définition du namespace pour notre projet
 
Sélectionnez
<namespaces>
          <namespace uri="http://www.koossery-tech.com/model/wc/1.0" prefix="wc"/>
</namespaces>
  • Le dossier de crédit
 
Sélectionnez
<type>
    <parent>cm:folder</parent> 
        <properties>
           <property name="wc:civility">
              <title>Civility</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
              <default>Mister</default>
              <constraints>
               <constraint ref = "wc:valueCivility"></constraint>
              </constraints>
           </property>
           <property name="wc:name">
              <title>Name</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
           </property>
           <property name="wc:surname">
              <title>Surname</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
           </property>
           <property name="wc:birthdate">
              <title>BirthDate</title>
              <type>d:date</type>
              <mandatory>true</mandatory>
           </property>
           <property name="wc:cni">
              <title>CNI</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
           </property>
           <property name="wc:familySituation">
              <title>FamilySituation</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
              <default>Married</default>
              <constraints>
               <constraint ref = "wc:valueFamilySituation"></constraint>
              </constraints>
           </property>
           <property name="wc:childNumber">
              <title>ChildNumber</title>
              <type>d:long</type>
              <mandatory>true</mandatory>
           </property>
           <property name="wc:childNumberInCharge">
              <title>ChildNumberInCharge</title>
              <type>d:long</type>
              <mandatory>true</mandatory>
           </property> 
           <property name="wc:email">
              <title>Email</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
           </property> 
           <property name="wc:professionnelSituation">
              <title>ProfessionnelSituation</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
           </property>  
           <property name="wc:since">
              <title>Since</title>
              <type>d:date</type>
              <mandatory>true</mandatory>
           </property>  
           <property name="wc:borrowAmount">
              <title>BorrowAmount</title>
              <type>d:long</type>
              <mandatory>true</mandatory>
           </property> 
           <property name="wc:reimbursementDuration">
              <title>ReimbursementDuration</title>
              <type>d:long</type>
              <mandatory>true</mandatory>
           </property> 
           <property name="wc:monthlySalary">
              <title>MonthlySalary</title>
              <type>d:long</type>
              <mandatory>true</mandatory>
           </property>  
           <property name="wc:loanType">
              <title>LoanType</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
              <default>Personnal loan</default>
              <constraints>
               <constraint ref = "wc:valueTypeLoan"></constraint>
              </constraints>
           </property>    
           <property name="wc:disbursementType">
              <title>DisbursementType</title>
              <type>d:text</type>
              <mandatory>true</mandatory>
              <default>Transfert</default>
              <constraints>
               <constraint ref = "wc:valueTypeDisbursement"></constraint>
              </constraints>
           </property>  
           <property name="wc:countNumber">
              <title>CountNumber</title>
              <type>d:long</type>
              <mandatory>true</mandatory>
           </property> 
            <property name="wc:stateDocument">
              <title>State on document</title>              
              <type>d:text</type>              
              <mandatory>true</mandatory>
              <default>No Created</default>
           </property>  
         </properties>
         <associations>
            <association name="wc:hasScanPaySlip">
                 <target>
                     <class>wc:scanPaySlip</class>
                     <mandatory>false</mandatory>
                     <many>true</many>
                 </target>
             </association>
             <association name="wc:hasScanTaxSlip">
                 <target>
                     <class>wc:scanTaxSlip</class>
                     <mandatory>false</mandatory>
                     <many>true</many>
                 </target>
             </association>
             <association name="wc:hasScanContrat">
                 <target>
                     <class>wc:scanContrat</class>
                     <mandatory>false</mandatory>
                     <many>true</many>
                 </target>
             </association>
             <association name="wc:hasGenerateContrat">
                 <target>
                     <class>wc:generateContrat</class>
                     <mandatory>false</mandatory>
                     <many>true</many>
                 </target>
             </association>
            </associations>
            <mandatory-aspects>
              <aspect>cm:versionable</aspect>
            </mandatory-aspects>
</type>

Notre dossier de crédit a pour type parent 'cm:folder' afin qu'il puisse hériter des propriétés d'un dossier et qu'il puisse être physiquement représenté par un dossier. Les propriétés qu'on retrouve dans ce modèle sont celles citées dans le paragraphe IIIIII.

Par ailleurs nous avons les associations suivantes :

  • hasScanPaySlip : association qui lie la fiche de paie au dossier de crédit ;
  • hasScanTaxSlip : association qui lie la fiche d'impôt au dossier de crédit ;
  • hasScanContrat : association qui lie le contrat scanné au dossier de crédit ;
  • hasGenerateContrat : association qui lie le contrat généré au dossier de crédit.

Nous distinguons aussi l'aspect suivant :

  • versionable : permet de rendre le dossier de crédit versionable c'est-à-dire qu'il aura plusieurs versions.
  • Modélisation d'une pièce jointe: la fiche de paie
 
Sélectionnez
<type name="wc:scanPaySlip">
    <title>Pay Slip scanned</title>
    <parent>cm:content</parent>
    <properties>
        <property name="wc:titlePay">
            <title>Title Pay Slip scanned</title>
            <type>d:text</type>
            <mandatory>false</mandatory>
        </property>
        <property name="wc:descriptionPay">
            <title>Description</title>
            <type>d:text</type>
            <mandatory>false</mandatory>
        </property>
    </properties>
</type>

Nous héritons du type de base 'cm:content' d'Alfresco, car nous gérons la fiche de paie comme un contenu du dossier de crédit.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+