Créer une action d’interface utilisateur pour activer la création d’articles de la base de connaissances à partir de tickets RH

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 1 minute de lecture
  • Créez une action d’interface utilisateur pour ajouter la case à cocher Connaissances au formulaire de ticket RH.

    Avant de commencer

    Rôle requis : administrateur

    Assurez-vous que l’application du développeur est définie sur Ressources humaines : Core.

    Procédure

    1. Accédez à la Tout > Interface utilisateur du système > Actions d'interface utilisateur.
    2. Cliquez sur Nouveau.
    3. Renseignez les champs suivants.
      Tableau 1. Formulaire Action d’interface utilisateur
      Champ Description
      Nom Créer un article de base de connaissances
      Table Ticket RH
      Nom de l'action create_knowledge
    4. Cochez la case Client .
    5. Cochez la case Liste v3 compatible.
    6. Cochez la case Bouton du formulaire.
    7. Dans le champ Onclick, saisissez createKnowledgeClient().
    8. Dans le champ Condition , entrez gs.getProperty(« sn_hr_core.enable_kcs_hr ») == 'true' & new global. CSMTableMapUtil (current).findMapByName(« sn_hr_core.hr_case_kcs_article ») & new global. KBKnowledge().canCreate().
    9. Dans le champ Script, entrez le code suivant.
      function createKnowledgeClient() {
          if (g_form.modified) {
              alert(new GwtMessage().getMessage('You have unsaved changes. Please save them to continue.'));
          }else{
              //Call the UI Action again but skip the 'onclick' function
              gsftSubmit(null, g_form.getFormElement(), 'create_knowledge');
      //MUST call the 'Action name' set in this UI Action
          }
      }
      
      //Code that runs without 'onclick'
      //Ensure call to server-side function with no browser errors
      if (typeof window == 'undefined')
          CreateKnowledgeServer();
      
          function CreateKnowledgeServer(){
          current.update();
      
          var map = new global.CSMTableMapUtil (current);
          map.findMapByName("sn_hr_core.hr_case_kcs_article");
          var targetURL = map.getTargetURL();
          var referenceLink = 
      "&sysparm_collection=sn_hr_core_case&sysparm_collectionID="+current.sys_id+"&sysparm_collection_key=task&sysparm_link_collection=m2m_kb_task&sysparm_collection_related_field=kb_knowledge&sysparm_referring_url=sn_hr_core_case.do%3fsys_id%3d"+current.sys_id;
          if(targetURL)
              action.setRedirectURL(targetURL[0]+referenceLink);
      }
    10. Cliquez sur Envoyer.