<div dir="ltr"><div class="gmail_default" style="">​​</div><div class="gmail_default" style=""><div class="gmail_default">​​</div><div class="gmail_default">Hello Fred,</div><div class="gmail_default"><br></div><div class="gmail_default">You can export yr database into an iso file and import into J-ISIS. Then you can write a Groovy script to reformat your records.</div><div class="gmail_default"><br></div><div class="gmail_default">Once your database OK, you can export the database into an iso file and get it back into ABCD.</div><div class="gmail_default"><br></div><div class="gmail_default">You will finds below a small script example.</div><div class="gmail_default"><br></div><div class="gmail_default">Best wishes,</div><div class="gmail_default"><br></div><div class="gmail_default">JC</div><div class="gmail_default"><br></div><div class="gmail_default" style="">#! v215Corrector_1</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">import org.unesco.jisis.corelib.common.IConnection</div><div class="gmail_default" style="">import org.unesco.jisis.corelib.client.ConnectionNIO</div><div class="gmail_default" style="">import org.unesco.jisis.corelib.client.ClientDbProxy</div><div class="gmail_default" style="">import org.unesco.jisis.corelib.common.IDatabase</div><div class="gmail_default" style="">import org.unesco.jisis.corelib.common.Global</div><div class="gmail_default" style="">import org.unesco.jisis.corelib.record.IRecord</div><div class="gmail_default" style="">import org.unesco.jisis.corelib.record.Record</div><div class="gmail_default" style="">import org.unesco.jisis.corelib.record.IField</div><div class="gmail_default" style="">import org.unesco.jisis.corelib.record.StringOccurrence</div><div class="gmail_default" style="">import org.unesco.jisis.corelib.record.Subfield</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">class Corrector {</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">    private ClientDbProxy db ;</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">    Corrector(String dbName) {</div><div class="gmail_default" style="">        // Initialize the server parameters</div><div class="gmail_default" style="">        def username = "admin";</div><div class="gmail_default" style="">        def password = "admin";</div><div class="gmail_default" style="">        def port = "1111";</div><div class="gmail_default" style="">        def hostname = "localhost";</div><div class="gmail_default" style="">        def dbHome = "DEF_HOME";</div><div class="gmail_default" style="">        // Establish a connection to the server</div><div class="gmail_default" style="">        def connection = ConnectionNIO.connect(hostname, Integer.valueOf(port), username, password);</div><div class="gmail_default" style="">    </div><div class="gmail_default" style="">        // Create a Database object bind to this server</div><div class="gmail_default" style="">        db = new ClientDbProxy(connection)</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">        // Open the database</div><div class="gmail_default" style="">         db.getDatabase(dbHome, dbName, Global. DATABASE_DURABILITY_WRITE)</div><div class="gmail_default" style="">         //db.getDatabase(dbHome, dbName, Global. DATABASE_BULK_WRITE)</div><div class="gmail_default" style="">    }</div><div class="gmail_default" style="">    </div><div class="gmail_default" style="">    def correctDb() {</div><div class="gmail_default" style="">       Record currentRecord ;</div><div class="gmail_default" style="">        // Get first record</div><div class="gmail_default" style="">       currentRecord = db.getFirst();</div><div class="gmail_default" style="">        // Iterate over the records in the database until nomore</div><div class="gmail_default" style="">   </div><div class="gmail_default" style="">        </div><div class="gmail_default" style="">        def i = 0 ;</div><div class="gmail_default" style="">        //while (i < 10) {</div><div class="gmail_default" style="">        while (currentRecord != null) {</div><div class="gmail_default" style="">            // Process the record-></div><div class="gmail_default" style="">            processRecord(i, currentRecord) ;</div><div class="gmail_default" style="">           </div><div class="gmail_default" style="">            i += 1 ;</div><div class="gmail_default" style="">           </div><div class="gmail_default" style="">            // Get the next sequential record in the mfn order</div><div class="gmail_default" style="">            currentRecord = db.getNext();</div><div class="gmail_default" style="">        } </div><div class="gmail_default" style="">        // Close the database</div><div class="gmail_default" style="">        db.close();</div><div class="gmail_default" style=""> </div><div class="gmail_default" style="">    }</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">    def processRecord(i, rec) {</div><div class="gmail_default" style="">        String doctype = "" ;</div><div class="gmail_default" style="">        String v215 = "" ;</div><div class="gmail_default" style="">        Long mfn = rec.getMfn() ;</div><div class="gmail_default" style="">         </div><div class="gmail_default" style="">        IField field ;  </div><div class="gmail_default" style="">        </div><div class="gmail_default" style="">        //sous-champ 1</div><div class="gmail_default" style="">        field =rec.getField(1) ;</div><div class="gmail_default" style="">        def occ = field.getOccurrence(0) ;</div><div class="gmail_default" style="">        if (occ != null) {</div><div class="gmail_default" style="">            doctype = occ.getSubfield('a') ;</div><div class="gmail_default" style="">        }</div><div class="gmail_default" style="">         </div><div class="gmail_default" style="">        </div><div class="gmail_default" style="">        // sous-champ 215</div><div class="gmail_default" style="">        field = rec.getField(215) ;</div><div class="gmail_default" style="">        occ = field.getOccurrence(0) ;</div><div class="gmail_default" style="">        // s'il existe</div><div class="gmail_default" style="">        if (occ != null && occ.hasSubfields()) {</div><div class="gmail_default" style="">            Subfield[] subfields = occ.getSubfields() ;</div><div class="gmail_default" style="">            if (subfields.length == 1 && subfields[0].getSubfieldCode() == 'a') {</div><div class="gmail_default" style="">                v215 = occ.getSubfield('a') ;</div><div class="gmail_default" style="">            }</div><div class="gmail_default" style="">        }</div><div class="gmail_default" style="">        if (doctype=="ART" && v215=="1 vol. ()" ) {</div><div class="gmail_default" style="">             println '\n==========\nrecord corrected mfn : ' + mfn +' doctype:'+ doctype + ' field value:' + field.getStringFieldValue() ;</div><div class="gmail_default" style="">            </div><div class="gmail_default" style="">             rec.removeField(215) ;</div><div class="gmail_default" style="">            </div><div class="gmail_default" style="">             db.updateRecordEx(rec) ;</div><div class="gmail_default" style="">        }</div><div class="gmail_default" style="">    }</div><div class="gmail_default" style=""> </div><div class="gmail_default" style="">}</div><div class="gmail_default" style=""><br></div><div class="gmail_default" style="">def corrector=new Corrector("Albert-Groovy") ;</div><div class="gmail_default" style="">corrector.correctDb() ;  </div><div class="gmail_extra" style=""><br><div class="gmail_quote">On Tue, Dec 5, 2017 at 5:36 PM, fred train <span dir="ltr"><<a href="mailto:fred_train@xs4all.nl" target="_blank">fred_train@xs4all.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello guru's<br><br>We have repeatable field called Keywords.<br>This field contains for historical reasons also coded location information.<br>A Keyword field could have entries like<br>Colored; upside; metal; painted; GLD; LIM; NLD; sale<br>The semicolons are added by the PFT. Each keyword has its own record.<br><br>We have created a new repeatable field called Locations. And the location entries from the keywords should be moved to the new Locations field and also translated into more readable strings.<br>The end-effect after the operation should look like:<br><br>Keyword: Colored; upside; metal; painted; sale<br>Locations: Gelderland(GLD); Limburg(LIM); Netherlands<br><br>The idea was to apply a global change for each of the keywords GLD, LIM and NLD.<br>I can modify the strings into their target strings (e.g. GLD becomes Gelderland) in the keywords.<br>But the Move option in Global change moves all entries of Keyword to Locations.<br><br>Is there a solution for my problem?<br>In other words: Is it possible with Global Change or another option to move some entries from the source repeatable field to a target repeatable field?<br>Regards<br>Fred<br><br>______________________________<wbr>_________________<br>isis-users mailing list<br><a href="mailto:isis-users@iccisis.org" target="_blank">isis-users@iccisis.org</a><br>To manage your own subscription options go to: <a href="http://lists.iccisis.org/listinfo/isis-users" rel="noreferrer" target="_blank">http://lists.iccisis.org/listi<wbr>nfo/isis-users</a><br>Or contact Henk Rutten: <a href="mailto:hlrutten@xs4all.nl" target="_blank">hlrutten@xs4all.nl</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Jean-Claude Dauphin<br><br><a href="mailto:jc.dauphin@gmail.com" target="_blank">jc.dauphin@gmail.com</a><br><br><a href="http://kenai.com/projects/j-isis/" target="_blank">https://github.com/J-ISIS</a><br><br><a href="http://www.unesco.org/isis/" target="_blank">http://www.unesco.org/isis/</a><br><a href="http://www.unesco.org/idams/" target="_blank">http://www.unesco.org/idams/</a><br><a href="http://www.greenstone.org/" target="_blank">http://www.greenstone.org</a></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 5, 2017 at 5:36 PM, fred train <span dir="ltr"><<a href="mailto:fred_train@xs4all.nl" target="_blank">fred_train@xs4all.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello guru's<br>
<br>
We have repeatable field called Keywords.<br>
This field contains for historical reasons also coded location information.<br>
A Keyword field could have entries like<br>
Colored; upside; metal; painted; GLD; LIM; NLD; sale<br>
The semicolons are added by the PFT. Each keyword has its own record.<br>
<br>
We have created a new repeatable field called Locations. And the location entries from the keywords should be moved to the new Locations field and also translated into more readable strings.<br>
The end-effect after the operation should look like:<br>
<br>
Keyword: Colored; upside; metal; painted; sale<br>
Locations: Gelderland(GLD); Limburg(LIM); Netherlands<br>
<br>
The idea was to apply a global change for each of the keywords GLD, LIM and NLD.<br>
I can modify the strings into their target strings (e.g. GLD becomes Gelderland) in the keywords.<br>
But the Move option in Global change moves all entries of Keyword to Locations.<br>
<br>
Is there a solution for my problem?<br>
In other words: Is it possible with Global Change or another option to move some entries from the source repeatable field to a target repeatable field?<br>
Regards<br>
Fred<br>
<br>
______________________________<wbr>_________________<br>
isis-users mailing list<br>
<a href="mailto:isis-users@iccisis.org" target="_blank">isis-users@iccisis.org</a><br>
To manage your own subscription options go to: <a href="http://lists.iccisis.org/listinfo/isis-users" rel="noreferrer" target="_blank">http://lists.iccisis.org/listi<wbr>nfo/isis-users</a><br>
Or contact Henk Rutten: <a href="mailto:hlrutten@xs4all.nl" target="_blank">hlrutten@xs4all.nl</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Jean-Claude Dauphin<br><br><a href="mailto:jc.dauphin@gmail.com" target="_blank">jc.dauphin@gmail.com</a><br><br><a href="http://kenai.com/projects/j-isis/" target="_blank">https://github.com/J-ISIS</a><br><br><a href="http://www.unesco.org/isis/" target="_blank">http://www.unesco.org/isis/</a><br><a href="http://www.unesco.org/idams/" target="_blank">http://www.unesco.org/idams/</a><br><a href="http://www.greenstone.org" target="_blank">http://www.greenstone.org</a></div></div></div>
</div></div>