Cet exemple utilise la méthode de connexion précédemment proposée et vous aurez simplement à construire une fenêtre avec les trois zones "SAI_xxx" pour finaliser le passage de paramètres de l'identification CrmServiceClient.
nItem est entier
TableSupprimeTout(TABLE_Resultat)
//Comment_1
sUserName est une chaîne = SAI_User
sPassword est une chaîne = SAI_Password
sCrmRegion est une chaîne = "EMEA"
sOrgName est une chaîne = SAI_Organisme
bisOffice365 est booléen = 1
clCrmServiceClient est un CrmServiceClient(sUserName,CrmServiceClient.MakeSecureString(sPassword),sCrmRegion,sOrgName,0,0,Null,bisOffice365)
sEntity est une chaîne = "account"
sAttName est une chaîne = "name"
sAttTelephone1 est une chaîne = "telephone1"
sAttTelephone2 est une chaîne = "telephone2"
//Comment_2
sFetchXML est une chaîne =[
fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' returntotalrecordcount='true'
entity name='_account_'
attribute name='_name_' /
attribute name='_telephone1_' /
attribute name='_telephone2_' /
/entity
/fetch
]
sFetchXML = Remplace(sFetchXML,"_account_",sEntity)
sFetchXML = Remplace(sFetchXML,"_name_",sAttName)
sFetchXML = Remplace(sFetchXML,"_telephone1_",sAttTelephone1)
sFetchXML = Remplace(sFetchXML,"_telephone2_",sAttTelephone2)
//Comment_3
pclEntityCollection est une EntityCollection dynamique
pclEntityCollection = allouer un EntityCollection
pclEntityCollection <- clCrmServiceClient.GetEntityDataByFetchSearchEC(sFetchXML,clCrmServiceClient.GetMyCrmUserId())
//Comment_4
clConverter est un GuidConverter
clEntity est un Entity(sEntity) dynamique
//Comment_5
POUR i=0 _A_ pclEntityCollection.TotalRecordCount -1
clEntity = allouer un Entity
clEntity <- pclEntityCollection.get_item(i)
TableAjoute(TABLE_Resultat) ; nItem++
TABLE_Resultat.COL_Colonne1[nItem] = (clEntity.Contains(sAttTelephone1)=1 ? clConverter.ConvertToString(clEntity.get_Item(sAttTelephone1)) SINON "")
TABLE_Resultat.COL_Colonne2[nItem] = (clEntity.Contains(sAttName)=1 ? clConverter.ConvertToString(clEntity.get_Item(sAttName)) SINON "")
TABLE_Resultat.COL_Colonne3[nItem] = (clEntity.Contains(sAttTelephone2)=1 ? clConverter.ConvertToString(clEntity.get_Item(sAttTelephone2)) SINON "")
TABLE_Resultat.COL_GUID[nItem] = clConverter.ConvertToString(clEntity.get_Id())
FIN
Nom de la fenêtre Windev : FEN_Dynamics_01.wdw
Cette fenêtre est maintenant totalement opérationnelle et l'objectif de départ qui consiste à
lire un "entity" sur 1 ou plusieurs attributs est atteint.
En cliquant sur le bouton "account", le programme charge et affiche en table mémoire Windev toutes les données de
l'entity account sur les deux attributs telephone1 et telephone2.
Il reste maintenant un point important qui consiste à identifier dynamiquement tous les attributs d'un entity car
l'objectif final est d'avoir un browser d'identity dynamique. Ce sera l'objet de la fiche technique suivante.
Gardez cette première fenêtre avec un code réduit à sa plus simple expression.
Il vous sera utile pour faire des tests sur d'autres entity et attribut, sans avoir de doute sur un code plus complexe.