Strange values in blueprint for entire form

Selecting Blueprint>Entire Form for a form which has objects grouped together produces what looks to me like incorrect values for those groups, eg:

“$GroupObjects”,"YnBsaXN0MDDUAAEAAgADAAQABQAGAZkBmlgkdmVyc2lvblgkb2JqZWN0c1kkYXJjaGl2ZXJU
JHRvcBIAAYagrxAuAAcACAANABQAYABhAGIAZwBtAJcAmACZAJoAngChAKUApgCuALEAsgC6
AMcAyADJAMwA3QDgAOYBNQE2ATcBOgFLAU4BTwFjAWcBawFvAXsBfAGCAYYBiQGNAZVVJG51
bGzSAAkACgALAAxbRm9ybU9iamVjdHNWJGNsYXNzgAKALdIADgAKAA8AE1pOUy5vYmplY3Rz
owAQABEAEoADgBSAG4Ap3xArABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAm
ACcAKAApACoAKwAsAC0ACgAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4APwBA
AEEAQgBDAEEAQQBBAEcARwBBAEEARwBKAEsAQQBNAE4ATwBQAFEAUgBTAEEAUgBVAFEAQQBB
etc, etc.

No, that is correct. A group is kept as an opaque binary value, you cannot see or modify the objects inside the group.

Are “groups” the only “opaque” values in blueprints?
Is there a way to dump all objects in blueprints “un-opaquely”? :thinking: :wink:

No.

Off the top of my head, static image objects have a big binary blob (the image itself).

I think there are some structural items that have opaque binary values.

Aww, c’mon Mark, you know the answer to that! (hence your :wink: emoji)

Blueprints use the various functions Panorama has for extracting database structure – objectinfo(, fieldproperties(, etc. These functions have access to almost all internal database structure. But some items, like objects nested within groups, are just not available. Notice that objects nested in groups are not available in any way – you can’t modify them in the UI either, except by un grouping them. Of course it’s not impossible that functions couldn’t be devised for this information, but it would be a significant engineering job that is nowhere near the top of the list of projects that need to be worked on.

1 Like

Heh … Yeah.
Just wanted to confirm that blueprints’ opaque object output is not changing. :smiley:

Thanks, Jim!

There are currently no plans to change how group objects are handled.

Panorama blueprints are code – automatically generated code, but nevertheless code. You can take a blueprint, copy and paste it into a procedure, and then run it without modification.

The code for generating a new form object uses the newformobject statement. This statement can be supplied with parameters for all the different object options. This works great for all types of objects except groups. To nest an object inside of another object, you would need a newformobject( function instead of a statement. That would require an entirely duplicate system for creating every single kind of object. The current system isn’t at all set up to be usable in a function instead of a statement, and in fact there is no code that allows you to create objects directly inside of a group. Groups are made by taking existing objects and turning them into a binary blob.

FYI, blueprint output does change in minor ways fairly frequently. For example, Panorama X 10.2 added relational capabilities, and that required new entries in the blueprint, as did features like auxiliary databases, database integrity, etc. And form objects have gotten several new entries over the past couple of years. So a blueprint from 2-3 years ago will probably have slight differences from one that is created today, even if there is no change to the database design. Conversely, a new blueprint generally won’t run on an older version of Panorama X, because the new blueprint uses new options that the older code interpreter won’t understand. You should always be able to run an old blueprint on a new version though – any missing entries will be set up with default values.