OWB/OMB Script Annoyances – More!

Hi Folks,  I’m dismayed at the tidbits and issues I am continuing to find with OMB/OWB script.  It can be powerful, it can be seemless, it can be great.  But at this time, it’s a bunch of nit-picky issues that can cause problems.  I’ve got a few new issues logged here, and a few questions.  If anyone has answers, I’d love to hear what they are. 

1. I tried NOT to add “INGRP2” to the Joiner object through OMBSCRIPT.  It gets created by Default.  I tried instead to add “HUB_X”, “HUB_Y”, and “HUB_Z” (which add correctly, and hook up correctly).  BUT – when I open the mapping in the designer, and try to “delete” empty INGRP2, it deletes the next group as well for “HUB_X”.  It doesn’t matter what the next group is, whatever the next group is, it won’t delete it.  Here’s the code:

[code]

OMBCREATE MAPPING ‘M_LNK_ENC_FAC_CLINIC_AHLTAT_EN’
 SET PROPERTIES (DESCRIPTION,BUSINESS_NAME)
 VALUES (‘RapidACE Generated Mapping, Load LNK_ENC_FAC_CLINIC from AHLTAT_ENCOUNTERS’,’M_LNK_ENC_EN’)
 ADD TABLE OPERATOR ‘LNK_ENC_FAC_CLINIC’
 BOUND TO TABLE ‘LNK_ENC_FAC_CLINIC’
 ADD TABLE OPERATOR ‘AHLTAT_ENCOUNTERS’
 BOUND TO TABLE ‘../STAGE/AHLTAT_ENCOUNTERS’
 ADD DEDUPLICATOR OPERATOR ‘DD_UNIQUE’
  ADD ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘DD_UNIQUE’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘DD_UNIQUE’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘DD_UNIQUE’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
 ADD EXPRESSION OPERATOR ‘EXP_CHG_DATATYPE’
  ADD ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘OFAC_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE,EXPRESSION) VALUES (‘NUMBER’,12,0,’INGRP1.FAC_SQN’)
  ADD ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘OEVNT_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE,EXPRESSION) VALUES (‘NUMBER’,12,0,’INGRP1.EVNT_SQN’)
  ADD ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘OCLINIC_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE,EXPRESSION) VALUES (‘NUMBER’,12,0,’INGRP1.CLINIC_SQN’)
 ADD LOOKUP OPERATOR ‘LKP_TARGET_KEY’
   SET PROPERTIES (LOOKUP_CONDITION)
   VALUES (‘INGRP1.OFAC_SQN = OUTGRP1.FAC_SQN and INGRP1.OEVNT_SQN = OUTGRP1.EVNT_SQN and INGRP1.OCLINIC_SQN = OUTGRP1.CLINIC_SQN’)
 BOUND TO TABLE ‘LNK_ENC_FAC_CLINIC’
  ADD ATTRIBUTE ‘OFAC_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘LKP_TARGET_KEY’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘OEVNT_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘LKP_TARGET_KEY’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘OCLINIC_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘LKP_TARGET_KEY’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
 ADD FILTER OPERATOR ‘FIL_EXISTING_RECS’
   SET PROPERTIES (FILTER_CONDITION)
   VALUES (‘INOUTGRP1.ENC_FAC_CLINIC_SQN IS NULL’)
  ADD ATTRIBUTE ‘ENC_FAC_CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
 ADD CONSTANT OPERATOR ‘CNST_LDTS_RSRC’
  ADD ATTRIBUTE ‘ENC_FAC_CLINIC_LDTS’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘CNST_LDTS_RSRC’
    SET PROPERTIES (DATATYPE,EXPRESSION) VALUES (‘DATE’,’SYSDATE()’)
  ADD ATTRIBUTE ‘ENC_FAC_CLINIC_RSRC’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘CNST_LDTS_RSRC’
    SET PROPERTIES (DATATYPE,LENGTH,EXPRESSION) VALUES (‘VARCHAR2’,20,'[OMBToSettableString ‘AHLTAT_ENCOUNTERS’]’)
 ADD SEQUENCE OPERATOR ‘SEQ_GENERATOR’
 BOUND TO SEQUENCE ‘SQN_LNK_ENC_FAC_CLINIC’
 ADD JOINER OPERATOR ‘JNR_ALL_HUBS’
   SET PROPERTIES (JOIN_CONDITION)
   VALUES (‘INGRP1.FACILITYNCID = HUB_FACILITY.FAC_ID and INGRP1.ENCOUNTERNUMBER = HUB_EVENT.EVNT_ID and INGRP1.CLINICNCID = HUB_CLINIC_NCID.CLINIC_NCID’)
  ADD INPUT GROUP ‘HUB_FACILITY’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD INPUT GROUP ‘HUB_EVENT’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD INPUT GROUP ‘HUB_CLINIC_NCID’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD ATTRIBUTE ‘deleteme’ OF GROUP ‘INGRP2’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,20,0)
  ADD ATTRIBUTE ‘removeme’ OF GROUP ‘INGRP2’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,20,0)
  ADD ATTRIBUTE ‘FACILITYNCID’ OF GROUP ‘INGRP1’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,20,0)
  ADD ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘HUB_FACILITY’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘FAC_ID’ OF GROUP ‘HUB_FACILITY’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,LENGTH) VALUES (‘VARCHAR2’,100)
  ADD ATTRIBUTE ‘ENCOUNTERNUMBER’ OF GROUP ‘INGRP1’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,20,0)
  ADD ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘HUB_EVENT’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘EVNT_ID’ OF GROUP ‘HUB_EVENT’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,LENGTH) VALUES (‘VARCHAR2’,100)
  ADD ATTRIBUTE ‘CLINICNCID’ OF GROUP ‘INGRP1’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,38,0)
  ADD ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘HUB_CLINIC_NCID’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,12,0)
  ADD ATTRIBUTE ‘CLINIC_NCID’ OF GROUP ‘HUB_CLINIC_NCID’ OF OPERATOR ‘JNR_ALL_HUBS’
    SET PROPERTIES (DATATYPE,PRECISION,SCALE) VALUES (‘NUMBER’,20,0)
 ADD TABLE OPERATOR ‘HUB_FACILITY’
 BOUND TO TABLE ‘HUB_FACILITY’
 ADD TABLE OPERATOR ‘HUB_EVENT’
 BOUND TO TABLE ‘HUB_EVENT’
 ADD TABLE OPERATOR ‘HUB_CLINIC_NCID’
 BOUND TO TABLE ‘HUB_CLINIC_NCID’
  ADD CONNECTION FROM ATTRIBUTE ‘NEXTVAL’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘SEQ_GENERATOR’
     TO ATTRIBUTE ‘ENC_FAC_CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘LNK_ENC_FAC_CLINIC’
  ADD CONNECTION FROM ATTRIBUTE ‘ENC_FAC_CLINIC_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘LKP_TARGET_KEY’
     TO ATTRIBUTE ‘ENC_FAC_CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
  ADD CONNECTION FROM ATTRIBUTE ‘ENC_FAC_CLINIC_LDTS’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘CNST_LDTS_RSRC’
     TO ATTRIBUTE ‘ENC_FAC_CLINIC_LDTS’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘LNK_ENC_FAC_CLINIC’
  ADD CONNECTION FROM ATTRIBUTE ‘ENC_FAC_CLINIC_RSRC’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘CNST_LDTS_RSRC’
     TO ATTRIBUTE ‘ENC_FAC_CLINIC_RSRC’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘LNK_ENC_FAC_CLINIC’
  ADD CONNECTION FROM ATTRIBUTE ‘FACILITYNCID’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘AHLTAT_ENCOUNTERS’
     TO ATTRIBUTE ‘FACILITYNCID’ OF GROUP ‘INGRP1’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD CONNECTION FROM ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘HUB_FACILITY’
     TO ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘HUB_FACILITY’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD CONNECTION FROM ATTRIBUTE ‘FAC_ID’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘HUB_FACILITY’
     TO ATTRIBUTE ‘FAC_ID’ OF GROUP ‘HUB_FACILITY’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD CONNECTION FROM ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘JNR_ALL_HUBS’
     TO ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘DD_UNIQUE’
  ADD CONNECTION FROM ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘DD_UNIQUE’
     TO ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
  ADD CONNECTION FROM ATTRIBUTE ‘OFAC_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
     TO ATTRIBUTE ‘OFAC_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘LKP_TARGET_KEY’
  ADD CONNECTION FROM ATTRIBUTE ‘OFAC_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
     TO ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
  ADD CONNECTION FROM ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
     TO ATTRIBUTE ‘FAC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘LNK_ENC_FAC_CLINIC’
  ADD CONNECTION FROM ATTRIBUTE ‘ENCOUNTERNUMBER’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘AHLTAT_ENCOUNTERS’
     TO ATTRIBUTE ‘ENCOUNTERNUMBER’ OF GROUP ‘INGRP1’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD CONNECTION FROM ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘HUB_EVENT’
     TO ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘HUB_EVENT’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD CONNECTION FROM ATTRIBUTE ‘EVNT_ID’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘HUB_EVENT’
     TO ATTRIBUTE ‘EVNT_ID’ OF GROUP ‘HUB_EVENT’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD CONNECTION FROM ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘JNR_ALL_HUBS’
     TO ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘DD_UNIQUE’
  ADD CONNECTION FROM ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘DD_UNIQUE’
     TO ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
  ADD CONNECTION FROM ATTRIBUTE ‘OEVNT_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
     TO ATTRIBUTE ‘OEVNT_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘LKP_TARGET_KEY’
  ADD CONNECTION FROM ATTRIBUTE ‘OEVNT_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
     TO ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
  ADD CONNECTION FROM ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
     TO ATTRIBUTE ‘EVNT_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘LNK_ENC_FAC_CLINIC’
  ADD CONNECTION FROM ATTRIBUTE ‘CLINICNCID’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘AHLTAT_ENCOUNTERS’
     TO ATTRIBUTE ‘CLINICNCID’ OF GROUP ‘INGRP1’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD CONNECTION FROM ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘HUB_CLINIC_NCID’
     TO ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘HUB_CLINIC_NCID’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD CONNECTION FROM ATTRIBUTE ‘CLINIC_NCID’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘HUB_CLINIC_NCID’
     TO ATTRIBUTE ‘CLINIC_NCID’ OF GROUP ‘HUB_CLINIC_NCID’ OF OPERATOR ‘JNR_ALL_HUBS’
  ADD CONNECTION FROM ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘JNR_ALL_HUBS’
     TO ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘DD_UNIQUE’
  ADD CONNECTION FROM ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘DD_UNIQUE’
     TO ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
  ADD CONNECTION FROM ATTRIBUTE ‘OCLINIC_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
     TO ATTRIBUTE ‘OCLINIC_SQN’ OF GROUP ‘INGRP1’ OF OPERATOR ‘LKP_TARGET_KEY’
  ADD CONNECTION FROM ATTRIBUTE ‘OCLINIC_SQN’ OF GROUP ‘OUTGRP1’ OF OPERATOR ‘EXP_CHG_DATATYPE’
     TO ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
  ADD CONNECTION FROM ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘FIL_EXISTING_RECS’
     TO ATTRIBUTE ‘CLINIC_SQN’ OF GROUP ‘INOUTGRP1’ OF OPERATOR ‘LNK_ENC_FAC_CLINIC’

[/code]

Now load this mapping, bring it up in the designer, and try to delete INGRP2 without deleting HUB_FACILITY…  it doesn’t work.  I wanted to “add” metadata meaning to the grouping names, but this seems like an impossibility at this time.  Does anyone know if OMB commands allow “REMOVE GROUP” from JOINER object to be executed?  The JOINER OBJECT on import shouldn’t create INGRP2 by default (unless there is NO OTHER GROUP SPECIFIED).

The *problem* with OMBCOMMANDS is the inability to wrap them together.  When “defining a joiner” to add, it’s a single command, treated literally – so the script interpreter acts on defaults without thinking.  (NO LOOKAHEAD in it’s processing engine).  It would be nice to “define a whole object” with all it’s parts as a single command, and THEN have the parser go through it.  This way, it would solve a number of other issues I put forward in my last blog entry.

2. ORDER IS IMPORTANT.  Because OMBSCRIPT executes EACH command one at a time (without regard to any other command), the properties for FILTER, LOOKUP, and JOINER conditions must be defined AFTER adding all the fields.  This means a MANDATORY OMBALTER command to execute post-creation.

3. OMBPLUS is probably one of the slowest metadata ingestions I’ve ever worked with.  Granted, I’ve got a slow machine, and a slow server, but this is hard to swallow.  My client: dual CPU intel centrino, windows Vista Home edition, 2 GB RAM, 32 bit.  100-base T ethernet, 1 hop, my server: Windows AMD turion 64×2, 2 GB RAM, Windows Vista home edition 32 bit.  There has to be something that can be done with the performance of Java and the ingestion of the metadata.  Informatica on this setup can import 150 mappings from XML in under 30 seconds TOTAL.

4. Spurious errors.  I can’t stand the errors that are returned.  I get “name-space” errors, and other errors with the OMBSCript (while I’m debugging) – they clearly tell me there’s an error, and what it is.  What they don’t tell me is WHAT OBJECT is the error associated with?  So it’s guess work.  In the case of “duplicate namespace used” it would be nice to know if it’s a field in a joiner, what GROUP is causing the conflict, and what JOINER has the problem.  But it doesn’t tell me this at all.  Debugging is hard.

5. GUI Designer – when you SAVE to the repository, it doesn’t change the cursor.  Most products put their GUI into a MODAL mode while saving, and change the icon to a spinning/waiting icon until the save is done.  Yes, we can see the italics changing to normal case, but the cursor is “default behaviour” on most windowing systems, it should change – so we can see that an action is taking place.

6. GUI Designer has inconsistencies.  Some properties are in the “side-bar”, while other properties are only available via double click.  for instance, the joiner, filter, and lookup – conditions are available in the sidebar.  But for the lookup, the condition is also available through double click.  Any PROPERTY should always be available in the GUI when double clicking the “transformation” in the mapping.  The Property inspector on the side-bar should be optional, but when viewable, should house ALL the properties for the transformation.  Again, common GUI development practices from many different platforms.

Hope this helps,
Dan L

Tags: , , , ,

3 Responses to “OWB/OMB Script Annoyances – More!”

  1. Denny 2010/06/07 at 6:53 am #

    Hi Dan,

    Regarding the deletion of groups in operators, try this:

    OMBALTER MAPPING ‘TEST’ MODIFY GROUP ‘INGRP1’ OF OPERATOR ‘JOINER_1’ RENAME TO ‘HUB_X’

    You do not have to delete the default groups, you can just rename the ones that were generated. Just like you do it in the GUI mapping editor.

    Regards,
    Denny

  2. dlinstedt 2010/06/07 at 8:59 am #

    Cool, thanks. I’ll look into it. I was trying to avoid having the OMBSCRIPT create a DEFAULT set of groups in the first place, and I was also trying to avoid issuing OMBALTER statements, as they slow the whole ingestion process way down. But, it’s a good workaround.

    Cheers,
    Dan L

  3. dlinstedt 2010/06/08 at 5:07 am #

    More IRRITATING behaviour…

    1) LOOKUPS – if you delete a field in the input or output groups of a lookup AND it’s referenced in the condition, AND the condition is FREE-STYLE, the GUI DELETES the ***ENTIRE*** Lookup condition, rather than just mark it invalid

    2) If you delete a field UPSTREAM in the SOURCE, there is NO WAY to propogate the changes automatically downstream and delete the field from the rest of the transformations.

    3) NOT ALL PROPERTIES that are in the database are available via OMB Scripting. Case in point: SEQUENCE OBJECTS (can’t get to CACHE/NOCACHE, CYCLE/NOCYCLE, etc..)

Leave a Reply

*