Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Présentation

...

  • Le système écrira une ligne dans sw_sys_brokermessage. Table à ne pas altérer.

  • Le service broker-message-gateway parcours tous les projets et regarde s'il y a des messages à envoyer au serveur RabbitMQ.

  • Le service JobCenter crée les queues de messages dans RabitMQ au démarrage et gère le dispatching, qui au final appel le script d'endpoint définis dans le notifications managment du studio.

...

Cet extrait provient du standard.

Bloc de code
languagecppc
// Script d'endpoint
// Nous récupérons la variable bodyData afin de la parser dans le script de parsing
EXECUTE_SCRIPT_FOREACH_ROW( "SysNotification_Customer_ParseForEach", "json", / Récupéra"<varscript>bodyData</varscript>" )



// Script de parsing
// Initialisation des variables contenant les data nécessaires du bodyData
rowid     = TRANSLATE( "<varscript>rowid</varscript>" )
action    = TRANSLATE( "<varscript>action</varscript>" )
device_ID = TRANSLATE( "<varscript>device_ID</varscript>" )

entity = "customer"
baseentity_ID = VARGET_DBSQL( "SELECT baseentity_ID FROM sw_data_baseentity WHERE codebaseentity = '<varscript>entity</varscript>'" )
messageToSubscribers = ""
// Surcharge
messageOverloadToSubscribers = CALL_SCRIPT( "SysNotificationOverload_Customer", rowid, action )
translationKeyToSubscribers = ""

// Initialisation de variable dépendantes de l'entité principale. name, city, postalCode.
entityDataQuery = TRANSLATE( "
  SELECT 
    t.code<varscript>entity</varscript> AS entityCode,
    t.name,
    t.city,
    t.postalCode
    
  FROM sw_data_<varscript>entity</varscript> AS t
    
  WHERE <varscript>entity</varscript>_ID = '<varscript>rowid</varscript>'
" )
VARINITIALIZE_SCRIPT_BYSQL( "<varscript>entityDataQuery</varscript>" )

// Echappement des appostrophes.
name = REPLACE( "<varscript>name</varscript>", "'", "''" )
city = REPLACE( "<varscript>city</varscript>", "'", "''" )


// Condition sur chaque actions
IF( EQUALS( action, "1" ) )THEN
  
  actionKey = "insert"
  
ENDIF

IF( EQUALS( action, "2" ) )THEN
  
  actionKey = "update"
  translationKeyToSubscribers = TRANSLATE( "NotificationModel_<varscript>entity</varscript>_<varscript>actionKey</varscript>" )
  
ENDIF

IF( EQUALS( action, "4" ) )THEN
  
  actionKey = "delete"
  
ENDIF

IF( LEN( messageOverloadToSubscribers ) > 0 )THEN
      
  messageToSubscribers = TRANSLATE( "<varscript>messageOverloadToSubscribers</varscript>" )
      
ENDIF

// Notification des subscribers
IF( ( LEN( messageToSubscribers ) > 0 ) || ( LEN( translationKeyToSubscribers ) > 0 ) )THEN
  
  CALL_SCRIPT( "FuncSysNotification_NotifySubscription", actionKey, device_ID, entity, rowid, baseentity_ID, "NOTIFICATION", messageToSubscribers, translationKeyToSubscribers, "REPLACE( REPLACE( REPLACE( REPLACE( ltMessage.text, '%codecustomer%', '<varscript>entityCode</varscript>' ), '%name%', '<varscript>name</varscript>' ), '%city%', '<varscript>city</varscript>' ), '%postalCode%', '<varscript>postalCode</varscript>' )")
  
ENDIF

...