2017-06-01 3 views
1

J'essaie de sauvegarder les valeurs de spécification du travail d'enfant et cela ne fonctionne pas comme prévu. Voici ce que j'ai essayé d'accomplir.Les spécifications du travail d'enfant ne sont pas sauvegardées

Je récupère la liste des parents et enfants de travail ensemble de sorte que la structure plate est maintenue et le filtrage des ordres de travail parent à afficher sur Mon ordre de travail affecté voir par exemple. Voici les tâches assignées à un utilisateur particulier pour un site particulier. parent WO - 1000 a un enfant WOS - 1001, 1002, 1003 parent WO - 2000 a un enfant WOS - 2001, 2002

  1. Assigned WorkOrders Voir montre seulement 1000 et 2000 ordre de travail.
  2. Une fois que vous avez sélectionné un ordre de travail, il affiche les détails du travail et la liste de WO WO.
  3. Il y a un onglet sur l'écran de travail comme pièce jointe ou Tâches ou WorkLogs
  4. Donc le flux est sélectionner un parent WO -> Ouvre la vue Détails du travail -> Cliquez sur l'onglet Enfants WO -> affiche la liste des enfants WO par exemple sélectionnez 1000 -> cliquez sur l'onglet Enfant WO -> affiche 1001, 1002, 1003
  5. Sélectionnez un WO et affiche ses attributs de spécification un par un
  6. Entrez une valeur pour les attributs de spécification, puis revenez en arrière (vous amène à L'écran de liste de WO enfant -> revenir en arrière (vous amène à l'écran de détails de workorder) -> revenir (vous amène à ma vue WOrkorders assignée)
  7. Voici le problème Sélectionnez parent WO et puis WO WO, toutes les spécifications de travail d'enfant sont perdus.
  8. Dans le fichier js, je récupérer les ressources et ordre de travail workorderSpec

initialize: function (eventContext) { 
 
    \t \t \t 
 
\t \t var workOrder = eventContext.application.getResource('workOrder').getCurrentRecord(); 
 
\t \t 
 
\t \t var identifier = workOrder.get('identifier'); 
 
\t \t \t \t 
 
\t \t var workorderSpecs = eventContext.application.getResource("workOrder.workOrderSpec"); 
 
    }

Étonnamment ce code fonctionne très bien pour la première fois. Mais la deuxième fois eventContext.application.getResource ("workOrder.workOrderSpec"); renvoie null même si var workOrder contient les informations de workorder correctes. Faites-moi savoir si vous avez de la confusion dans le scénario.

Toute aide est très appréciée.

Répondre

0

J'ai fait une chose similaire. Dans la structure de l'objet, j'ai ajouté une nouvelle vue sur workorder (WOCHILDREN) et j'ai changé la relation workorderspec pour inclure toutes les spécifications de WorkOrder et les spécifications sous children. Vous devez savoir qu'après avoir téléchargé les spécifications sur votre mobile, cette relation est perdue (toutes les spécifications font toujours référence au bon de travail original). J'ai ensuite utilisé le eventContext.ui.viewHistory pour déterminer où j'étais dans l'application. Ensuite, décidez si j'ai besoin de workorderResource currentRecord ou de l'enregistrement actuel wochildrenResource. Et obtenir l'identifiant de cet enregistrement.

Vous devez maintenant utiliser cet identifiant (workorderid) pour filtrer la liste des workorderspecs. Le problème avec cette approche est que le filtrage d'une ressource modifie l'état de cet ensemble. Ce qui signifie que les modifications non enregistrées sont perdues. J'ai donc ajouté un contrôle supplémentaire pour voir si un ensemble était filtré et sale (c'est-à-dire changé) et si c'est le cas, sauvegardez l'ensemble.