*** Settings *** Documentation Teste le traitement des tâches de categorie 'portal'. # On inclut les mots-clefs Resource resources/resources.robot # On ouvre/ferme le navigateur au début/à la fin du Test Suite. Suite Setup Run Keywords ... For Suite Setup ... AND Activation des options générales ... AND Activation de la configuration portal DS Suite Teardown Run Keywords ... Désactivation de la configuration portal DS ... AND Désactivation des options générales ... AND For Suite Teardown *** Test Cases *** Constitution du jeu de données et du paramétrage dossiers [Documentation] On se place dans un contexte SC, avec notamment le mode option_dossier_commune, ... pour simuler l'intégration de Consultations Préalables provenant de Démarches Simplifiées ... dans l'instance du MC. # En tant qu'admin Depuis la page d'accueil admin admin # Isole le contexte du test (création d'une collectivité) &{librecom_multi_1_values} = Create Dictionary ... om_collectivite_libelle=305_002_LIBRECOLL_WS_CREATE_DI_PORTAL ... departement=017 ... commune=100 ... insee=17305 ... direction_code=DIR_305_002 ... direction_libelle=Direction de 305_002_LIBRECOLL_WS_CREATE_DI_PORTAL ... direction_chef=Chef DIR ... division_code=DIV_305_002 ... division_libelle=Division de 305_002_LIBRECOLL_WS_CREATE_DI_PORTAL ... division_chef=Chef DIV ... guichet_om_utilisateur_nom=Bobby Bob ... guichet_om_utilisateur_email=bbob@openads-test.fr ... guichet_om_utilisateur_login=bbob ... guichet_om_utilisateur_pwd=bbob ... instr_om_utilisateur_nom=Stevie Steve ... instr_om_utilisateur_email=ssteve@openads-test.fr ... instr_om_utilisateur_login=ssteve ... instr_om_utilisateur_pwd=ssteve Isolation d'un contexte ${librecom_multi_1_values} Set Suite Variable ${librecom_multi_1_values} # Ajoute le paramètre param_communes &{param_communes} = Create Dictionary ... libelle=param_communes ... valeur=17 ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${param_communes} # Ajoute le paramètre service_type &{param_service_type} = Create Dictionary ... libelle=service_type ... valeur=UDAP ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${param_service_type} # Ajoute le paramètre code_entite &{param_code_entite} = Create Dictionary ... libelle=code_entite ... valeur=U17 ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${param_code_entite} # Ajoute un type de dossier d'autorisation &{args_type_dossier_autor} = Create Dictionary ... code=CP ... libelle=Consultation préalable ... groupe=Renseignement d'urbanisme Ajouter le type de dossier d'autorisation ${args_type_dossier_autor} # Ajoute un type de dossier d'autorisation détaillé &{args_type_dossier_autor} = Create Dictionary ... code=CP ... libelle=DS - CONSULTATION PREALABLE ... dossier_autorisation_type=CP (Consultation préalable) ... cerfa=cerfa de test Ajouter type de dossier d'autorisation détaillé ${args_type_dossier_autor} # Ajoute un type de dossier d'instruction &{args_type_dossier_instr} = Create Dictionary ... code=P ... libelle=Consultation préalable DS (CP EP) ... dossier_autorisation_type_detaille=CP (DS - CONSULTATION PREALABLE) ... mouvement_sitadel=SUPPRESSION ... maj_da_etat=true ... maj_da_demandeur=true ... maj_da_dt=true Ajouter type de dossier d'instruction ${args_type_dossier_instr} # Ajoute un état &{args_evenement} = Create Dictionary ... etat=305_002_nouveau_dossier ... libelle=Nouveau dossier (305_002) ... statut=En cours Ajouter état ${args_evenement} # Ajoute un type d'action &{args_action} = Create Dictionary ... action=initialisation_CP ... libelle=Initialiser un dossier CP déposé au MC ... regle_etat=etat ... regle_delai=delai ... regle_accord_tacite=accord_tacite Gerer l'action par WS ${args_action} # Ajoute un type d'événement @{type_di} = Create List CP - P - Consultation préalable DS (CP EP) &{args_evenement} = Create Dictionary ... libelle=Nouveau dossier (CP DS) ... notification=Notification automatique ... dossier_instruction_type=${type_di} ... action=Initialiser un dossier CP déposé au MC ... etat=Nouveau dossier (305_002) Ajouter l'événement depuis le menu ${args_evenement} Set Suite Variable ${type_di} # Ajoute un type de demande &{args_demande_type} = Create Dictionary ... code=CPEP ... libelle=Consultation préalable (CP EP) - dossier DS ... groupe=Renseignement d'urbanisme ... dossier_autorisation_type_detaille=CP (DS - CONSULTATION PREALABLE) ... demande_nature=Nouveau dossier ... dossier_instruction_type=CP - Consultation préalable DS (CP EP) ... evenement=Nouveau dossier (CP DS) Ajouter un nouveau type de demande depuis le menu ${args_demande_type} # Définit les paramètres de type de demande &{platau_type_demande_initial} = Create Dictionary ... libelle=platau_type_demande_initial_CP ... valeur=CPEP ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${platau_type_demande_initial} # Ajoute une commune &{com_values} = Create Dictionary ... typecom=COM ... com=17305 ... reg=17 ... dep=17 ... arr=100 ... tncc=0 ... ncc=305_002_LIBRECOM_WS_CREATE_DI_PORTAL_NCC ... nccenr=305_002_LIBRECOM_WS_CREATE_DI_PORTAL_NCCENR ... libelle=305_002_LIBRECOM_WS_CREATE_DI_PORTAL_LIBELLE ... can=17 ... comparent= ... om_validite_debut=01/11/2020 Ajouter commune avec dates validité ${com_values} Set Suite Variable ${com_values} # Affectation automatique de l'instructeur (ssteve) sur les dossiers CP DS. # Isolation d'un contexte ne configure l'affectation que pour PCI ; sans cette # ligne, les dossiers CP créés via DS n'auraient pas d'instructeur assigné et # les messages DS (destinataire=instructeur) ne remonteraient dans aucun widget. &{args_affectation_cp} = Create Dictionary ... instructeur=${librecom_multi_1_values["instr_om_utilisateur_nom"]} (${librecom_multi_1_values["division_code"]}) ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} ... dossier_autorisation_type_detaille=CP - DS - CONSULTATION PREALABLE Gerer une affectation automatique par WS ${args_affectation_cp} Vérification du traitement de la tâche création DI d'un dossier DS [Documentation] On ajoute une tâche de type create_DI provenant de Démarches-Simplifiées ... afin de vérifier que : ... - un DI de type Consultation Préalable est créé dans openADS ... - un service est assigné au DI en fonction des paramètres `param_communes` et `service_type` ... - la tâche `notification_recepisse` générée contient les external_uids du dossier # Récupère le payload de création DI ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}create_DI_portal_DS_payload.txt ${json_payload} = Replace String ${json_payload} 13055 17305 Set Suite Variable ${demande_external_uid} RG9zc2llci0yNjgzMjAzMQ== Set Suite Variable ${code_suivi_external_uid} 26832031 ${json_payload} = Replace String ${json_payload} demande_external_uid ${demande_external_uid} ${json_payload} = Replace String ${json_payload} code_suivi_external_uid ${code_suivi_external_uid} ${payload_dict} = To Json ${json_payload} # Ajoute une tâche create_DI ${task_values} = Create Dictionary ... type=create_DI ... category=portal ... json_payload=${json_payload} Ajouter la tâche par WS ${task_values} # Lance le taskmanager ${msg} = Déclencher le traitement des tâches par WS # Vérification de la création du dossier Depuis la page d'accueil admin admin Depuis le listing dossier_instruction Input Text css=div#adv-search-adv-fields input#commune ${com_values["libelle"]} Click On Search Button Click Link ${com_values["libelle"]} # Vérification de l'attribution du service (om_collectivite) Element Should Contain css=fieldset#fieldset-form-dossier_instruction-dossier-d_instruction div.bloc.om_collectivite ${librecom_multi_1_values["om_collectivite_libelle"]} # Récupération du numéro de dossier créé Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Page Should Contain Element css=#dossier_libelle ${dossier_libelle_notrim} = Get Text css=#dossier_libelle ${dossier_libelle} = Sans espace ${dossier_libelle_notrim} Set Suite Variable ${dossier_libelle_notrim} Set Suite Variable ${dossier_libelle} # Vérification de la présence du code de suivi de la demande Open All Fieldset Using Javascript dossier_instruction Element Should Contain css=span#lien_iiue_portal 26832031 # Vérification du traitement des tâches Depuis la page d'accueil admin admin Depuis le menu Moniteur DS # On vérifie qu'il y a une tâche Création demande dans l'état Terminé Element Should Contain css=div#adv-search-adv-fields select#type Création demande Select From List By Label css=select#type Création demande Input Text css=div#adv-search-adv-fields input#object_id ${dossier_libelle} Click On Search Button Element Should Contain css=.tab-data Terminé # On vérifie qu'il y a une tâche Notification récépissé dans l'état À Traiter Element Should Contain css=div#adv-search-adv-fields select#type Notification récépissé Select From List By Label css=select#type Notification récépissé Clear Element Text css=div#adv-search-adv-fields input#object_id Input Text css=div#adv-search-adv-fields input#dossier ${dossier_libelle} Click On Search Button Element Should Contain css=.tab-data À Traiter # On vérifie que la tâche Notification récépissé contient les external_uids DS Click Link Notification récépissé Wait Until Element Is Visible css=#fieldset-form-task_portal-json_payload-calculee > .collapsible Click Element css=#fieldset-form-task_portal-json_payload-calculee > .collapsible Element Should Contain css=#fieldset-form-task_portal-json_payload-calculee #json_payload "demande": "${demande_external_uid}" Element Should Contain css=#fieldset-form-task_portal-json_payload-calculee #json_payload "code-suivi": "${code_suivi_external_uid}" # On vérifie qu'aucune tâche platau de création DA n'est créée Depuis la page d'accueil admin admin Depuis le menu Moniteur Plat'AU ${passed} = Run Keyword And Return Status Element Should Not Contain css=div#adv-search-adv-fields select#type Création demande Run Keyword If ${passed}==False Select From List By Label css=select#type Création demande Run Keyword If ${passed}==False Input Text css=div#adv-search-adv-fields input#dossier ${dossier_libelle} Run Keyword If ${passed}==False Click On Search Button Run Keyword If ${passed}==False Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} Element Should Contain css=.tab-data Aucun enregistrement. Vérification des champs de fusion du dossier concernant les external_uids provenant de DS [Documentation] On vérifie que les champs de fusion des identifiants externes soient bien ... valués sur les éditions du dossier créé dans le testcase précédent. # Vérification du fonctionnement des champs de fusion liés aux external_uids 'demande' et 'code-suivi' # Ajout des champs de fusion sur une lettre type Depuis la page d'accueil admin admin &{args_lettretype} = Create Dictionary ... id=305_002_lettretype_test_merge_fields_external_uids ... libelle=Lettre type test merge fields external uids ... sql=Récapitulatif du dossier d'instruction / instruction (instruction) ... titre=Titre ... corps=[identifiant_externe_technique] [identifiant_externe_fonctionnel] ... actif=true ... collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Ajouter la lettre-type depuis le menu &{args_lettretype} # Ajout d'une instruction liée à la lettre type Depuis la page d'accueil admin admin @{etat_source} = Create List Nouveau dossier (305_002) &{args_evenement} = Create Dictionary ... libelle=TEST_305_002_champs_fusion_external_uids ... etats_depuis_lequel_l_evenement_est_disponible=${etat_source} ... dossier_instruction_type=${type_di} ... lettretype=305_002_lettretype_test_merge_fields_external_uids Lettre type test merge fields external uids ... redirection_ajout=Listing des instructions (défaut) Ajouter l'événement depuis le menu ${args_evenement} # Ajout de l'instruction sur le dossier d'instruction Depuis le contexte du dossier d'instruction ${dossier_libelle_notrim} Ajouter une instruction au DI ${dossier_libelle_notrim} TEST_305_002_champs_fusion_external_uids # Vérification de la présence des champs de fusion dans la lettre type Depuis l'instruction du dossier d'instruction ${dossier_libelle_notrim} TEST_305_002_champs_fusion_external_uids Click On SubForm Portlet Action instruction edition new_window Open PDF ${OM_PDF_TITLE} PDF Page Number Should Contain 1 26832031 PDF Page Number Should Contain 1 RG9zc2llci0yNjgzMjAzMQ== Close PDF Vérification du traitement de la tâche entrante create_message dans le contexte Démarches Simplifiées [Documentation] On vérifie que la tâche entrante create_message crée un message à destination ... de l'instructeur sur le dossier d'instruction correspondant. # Récupère le payload de création du message ${json_payload} = Get File ${EXECDIR}${/}binary_files${/}create_message_portal_payload.txt ${message_external_uid} = Set Variable Q29tbWVudGFpcmUtNjk4MzYzNTM= ${json_payload} = Replace String ${json_payload} demande_external_uid ${demande_external_uid} ${json_payload} = Replace String ${json_payload} code_suivi_external_uid ${code_suivi_external_uid} ${json_payload} = Replace String ${json_payload} message_external_uid ${message_external_uid} ${payload_dict} = To Json ${json_payload} # Ajoute une tâche create_message ${task_values} = Create Dictionary ... type=create_message ... category=portal ... json_payload=${json_payload} Ajouter la tâche par WS ${task_values} # Lance le traitement des tâches ${msg} = Déclencher le traitement des tâches par WS Log ${msg} # Vérification de la création et du traitement de la tâche Depuis la page d'accueil admin admin Depuis le menu Moniteur DS Element Should Contain css=div#adv-search-adv-fields select#type Message Select From List By Label css=select#type Message Click On Search Button Element Should Contain css=.tab-data Terminé # Vérification que le message est "Non lu" et que l'émetteur est le pétitionnaire Depuis l'onglet des messages du dossier d'instruction ${dossier_libelle_notrim} Element Should Be Visible css=div#sousform-dossier_message table.tab-tab Element Should Contain css=div#sousform-dossier_message table.tab-tab tbody td.col-4 petitionnaire Element Should Contain css=div#sousform-dossier_message table.tab-tab tbody td.col-6 Non Vérification du widget Mes messages avec un message DS pétitionnaire [Documentation] Vérifie que le widget 'Mes messages' (emetteur=petitionnaire) affiche ... les messages DS pétitionnaire sur le DI de l'instructeur. [Setup] Marquer ce test comme échoué si le test précédent est raté # Création du widget 'Mes messages (DS)' Depuis la page d'accueil admin admin ${om_widget_libelle} = Set Variable TEST_305_002_Mes_messages_DS_petitionnaire &{args_om_widget} = Create Dictionary ... libelle=${om_widget_libelle} ... type=file - le contenu du widget provient d'un script sur le serveur ... script=messages_retours ... arguments=emetteur=petitionnaire\ndossier_cloture=true ${id_om_widget} = Ajouter le widget depuis l'URL ${args_om_widget} Set Suite Variable ${id_om_widget} &{args_om_dashboard} = Create Dictionary ... om_widget=${om_widget_libelle} ... om_profil=INSTRUCTEUR ... bloc=C1 ... position=1 ${id_om_dashboard} = Ajouter le widget au tableau de bord du profil depuis l'URL ${args_om_dashboard} Set Suite Variable ${id_om_dashboard} # Vérification du widget (ssteve) Depuis la page d'accueil ssteve ssteve Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Be Visible css=#widget_${id_om_dashboard}.widget_messages_retours .widget-content-wrapper span.box-icon Element Should Contain css=#widget_${id_om_dashboard}.widget_messages_retours .widget-content-wrapper span.box-icon 1 Click Element css=#widget_${id_om_dashboard}.widget_messages_retours .widget-footer a Wait Until Element Is Visible css=[id^="tab-messages"] table Element Should Contain css=[id^="tab-messages"] table td.col-1 ${dossier_libelle_notrim} Click Link ${dossier_libelle_notrim} Wait Until Element Is Visible css=[id^="sousform-dossier_message"] #sformulaire Wait Until Keyword Succeeds ${TIMEOUT} ${RETRY_INTERVAL} ... Element Should Contain css=#emetteur petitionnaire Element Should Contain css=#lu Non # Nettoyage du widget Depuis la page d'accueil admin admin Supprimer le tableau de bord depuis l'URL par l'identifiant ${id_om_dashboard} Supprimer le widget depuis l'URL par l'identifiant ${id_om_widget} Vérification des données générées lors de l'émission d'un avis de décision [Documentation] On vérifie la présence des données propres à l'avis de décision, et plus ... précisément la nature de l'avis, dans la tâche sortante générée lors de l'ajout d'une ... instruction de décision sur un dossier DS. # Paramétrage d'une instruction de décision # Ajout d'un avis de décision avec nature d'avis &{avis_decision_values} = Create Dictionary ... libelle=305_002 - Avis favorable DS ... typeavis=favorable ... avis_decision_type=Conforme ... avis_decision_nature=Favorable Ajouter l'avis de décision ${avis_decision_values} # Ajout d'une action permettant de générer un avis de décision Depuis la page d'accueil admin admin &{args_action} = Create Dictionary ... action=305_002_decision_consultation_prealable_ds ... libelle=305_002 - Décision sur consultation préalable DN ... regle_etat=etat ... regle_avis=avis_decision ... regle_date_decision=date_evenement Gerer l'action par WS ${args_action} # Ajout d'un événement de décision sur la Consultation Préalable @{etats_source} = Create List Nouveau dossier (305_002) &{args_evenement} = Create Dictionary ... libelle=305_002 - Accepter dossier DS (CP EP) ... commentaire=true ... notification=Notification automatique ... dossier_instruction_type=${type_di} ... etats_depuis_lequel_l_evenement_est_disponible=${etats_source} ... accord_tacite=Non ... action=${args_action.action} ... etat=dossier accepter ... avis_decision=305_002 - Avis favorable DS Gerer l'événement par WS ${args_evenement} # Ajout d'une instruction de décision sur une CP ${instr_decision} = Ajouter une instruction au DI ${dossier_libelle_notrim} ${args_evenement.libelle} null null null null TEST_COMMENTAIRE # Vérification de la présenced'une tâche sortante de notification de décision dans l'état À Traiter Depuis la page d'accueil admin admin Depuis le menu Moniteur DS Element Should Contain css=div#adv-search-adv-fields select#type Notification décision Select From List By Label css=select#type Notification décision Clear Element Text css=div#adv-search-adv-fields input#object_id Input Text css=div#adv-search-adv-fields input#dossier ${dossier_libelle} Click On Search Button Element Should Contain css=.tab-data À Traiter # Vérification de la présence des propriétés de l'avis de décision dans la tâche de notification de décision Click Link Notification décision Click Element css=#fieldset-form-task_portal-json_payload-calculee > .collapsible Element Should Contain css=#fieldset-form-task_portal-json_payload-calculee #json_payload "avis_decision": { Element Should Contain css=#fieldset-form-task_portal-json_payload-calculee #json_payload "avis_decision_type": "2", Element Should Contain css=#fieldset-form-task_portal-json_payload-calculee #json_payload "avis_decision_nature": "1", Vérification de l'ajout d'un message et de la création d'une tâche sortante à destination du pétitionnaire [Documentation] On vérifie qu'il est possible d'ajouter un message manuel sur le dossier ... avec le pétitionnaire comme destinataire et que ce message est marqué comme lu. On ... vérifie également qu'une tâche sortante est automatiquement créée à l'ajout du message. # Ajout d'un message à destination du pétitionnaire Depuis la page d'accueil admin admin ${message} = Set Variable Message de test pour le pétitionnaire ${destinataire} = Set Variable pétitionnaire ${dossier_message_id} = Ajouter un message dans le dossier d'instruction ${dossier_libelle_notrim} ${message} ${destinataire} # Vérification de la création et des valeurs du message Depuis l'onglet des messages du dossier d'instruction ${dossier_libelle_notrim} Element Should Be Visible css=div#sousform-dossier_message table.tab-tab # ID du message Element Should Contain css=div#sousform-dossier_message table.tab-tab tbody td.col-0 ${dossier_message_id} # Destinataire Element Should Contain css=div#sousform-dossier_message table.tab-tab tbody td.col-5 petitionnaire # Marqué comme lu Element Should Contain css=div#sousform-dossier_message table.tab-tab tbody td.col-6 Oui # Vérification de la création d'une tâche sortante Depuis le menu Moniteur DS Element Should Contain css=div#adv-search-adv-fields select#type Message Select From List By Label css=select#type Message Element Should Contain css=div#adv-search-adv-fields select#stream Sortant Select From List By Label css=select#stream Sortant Input Text css=div#adv-search-adv-fields input#dossier ${dossier_libelle} Click On Search Button Element Should Contain css=.tab-data À Traiter *** Keywords *** Activation des options générales # Active le paramètre option_dossier_saisie_numero_complet &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_saisie_complete} # Active le paramètre option_dossier_commune &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_dossier_commune} # Active le mode service consulté &{param_division} = Create Dictionary ... libelle=option_mode_service_consulte ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} # Ajoute le paramètre option_notification &{param_notification} = Create Dictionary ... libelle=option_notification ... valeur=mail,portal ... om_collectivite=agglo Gerer le paramètre par WS ${param_notification} # Ajoute le paramètre parametre_notification_url_acces &{param_notification} = Create Dictionary ... libelle=parametre_notification_url_acces ... valeur=http://localhost/openads/ ... om_collectivite=agglo Gerer le paramètre par WS ${param_notification} # Ajoute le paramètre option_om_collectivite_entity &{param_notification} = Create Dictionary ... libelle=option_om_collectivite_entity ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_notification} # Ajoute le paramètre option_message_petitionnaire &{param_message_petitionnaire} = Create Dictionary ... libelle=option_message_petitionnaire ... valeur=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_message_petitionnaire} Désactivation des options générales # Désactive le paramètre option_dossier_saisie_numero_complet &{param_saisie_complete} = Create Dictionary ... libelle=option_dossier_saisie_numero_complet ... delete=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_saisie_complete} # Désactive le paramètre option_dossier_commune &{param_dossier_commune} = Create Dictionary ... libelle=option_dossier_commune ... delete=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_dossier_commune} # Désactive le mode service consulté &{param_division} = Create Dictionary ... libelle=option_mode_service_consulte ... delete=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_division} # Désactive le paramètre option_notification &{param_notification} = Create Dictionary ... libelle=option_notification ... delete=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_notification} # Désactive le paramètre option_om_collectivite_entity &{param_notification} = Create Dictionary ... libelle=option_om_collectivite_entity ... delete=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_notification} # Désactive le paramètre param_communes &{param_communes} = Create Dictionary ... libelle=param_communes ... delete=true ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${param_communes} # Désactive le paramètre service_type &{param_service_type} = Create Dictionary ... libelle=service_type ... delete=true ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${param_service_type} # Désactive le paramètre code_entite &{param_code_entite} = Create Dictionary ... libelle=code_entite ... delete=true ... om_collectivite=${librecom_multi_1_values["om_collectivite_libelle"]} Gerer le paramètre par WS ${param_code_entite} # Désactive le paramètre option_message_petitionnaire &{param_message_petitionnaire} = Create Dictionary ... libelle=option_message_petitionnaire ... delete=true ... om_collectivite=agglo Gerer le paramètre par WS ${param_message_petitionnaire} Activation de la configuration portal DS Run sed -i '$ a\\$config\["type_portal_sve"\] = "ds";' ${EXECDIR}${/}..${/}dyn${/}config.inc.php Désactivation de la configuration portal DS Run sed -i '$d' ${EXECDIR}${/}..${/}dyn${/}config.inc.php