Om beveiligingsbeperkingen heen werken

Script dat het sourceSet-model of een van de onderliggende elementen wijzigt, maakt de certificatie van het formulier ongeldig zodat het formulier niet langer kan worden vertrouwd. Aangezien een formulier op elk moment in de levenscyclus ervan kan worden gecertificeerd, is het van belang scripttechnieken te gebruiken die voorkomen dat het formulier niet meer werkt nadat het is gecertificeerd.

U moet werken met klonen van het model en niet met het model zelf als u scripts wilt gebruiken die het sourceSet-model of een van de onderliggende elementen wijzigen. Door te klonen blijft het formulier functioneren wanneer scripts een gegevensmodel wijzigen. Voor formulieren die veelvuldig voorkomende taken uitvoeren, bijvoorbeeld, zoals het weergeven van records in een database of selecteren van specifieke records in een database, is de wijziging van gegevensverbindingsknooppunten vereist in het sourceSet-model.

Voor het klonen van het sourceSet-model moet u een methode maken in het script die de gegevensverbinding definieert die u wilt wijzigen in het sourceSet-model en zorgen dat het script de kloon blijft gebruiken in plaats van de definitie.

Bekijk het volgende script op basis van een vervolgkeuzelijst met gegevens. Het script vult de lijst met gegevens uit een gegevensbron.

... 
var oDB = xfa.sourceSet.nodes.item(nIndex); 
... 
// Search node with the class name "command" 
var nDBIndex = 0; 
while(oDB.nodes.item(nDBIndex).className != "command") 
nDBIndex++; 
 
oDB.nodes.item(nDBIndex).query.recordSet.setAttribute("stayBOF", "bofAction"); 
oDB.nodes.item(nDBIndex).query.recordSet.setAttribute("stayEOF", "eofAction");

Voor het klonen van het sourceSet-model moet u de regel voor toegang tot de kloon wijzigen door de methode clone(1) aan het einde van de instructie eraan toe te voegen:

    var oDB = xfa.sourceSet.nodes.item(nIndex).clone(1);

Opmerking: U kunt het gekloonde gegevensverbindingsknooppunt opslaan in een variabele of een variabele gedefinieerd in een scriptobject.