String or Binary data would be truncated when installing forge component

Hi, I'm after a bit of help testing an issue I have when installing a component I published to the forge.


I Created a simple component in Outsystems 10 and published it to the forge but when trying to do a test install to Outsystems 11 I get the following error


I was wondering if someone could do me a favor and try installing it in a V11 environment so I can try and find out if it is either my personal environment, my install of Outsystems 11 or a problem with the component somehow.

I get the same error if I download the component and do a manual install.

Component is 

https://www.outsystems.com/forge/Component_Versions.aspx?ProjectId=5139


Hi John,

Both my personal environment on O11 and an environment on O10 I have access to are giving me the same error. From what I can see in the Error details, it seems there's some information on the Application entity that would be truncated (some text string is too long?).

Opening the module itself (inside the OAP) works with no issues in O10 and O11 (I didn't test the behaviour).

Upon further inspection, your Description is currently using over 3000 characters, where the maximum description size is 2000 characters. I'm curious how you managed to achieve that, I can't seem to insert more than 2000 characters on SS 11.

I types it in word to make use of the spell checker and then just pasted it directly into the description field :). This was in V10, looks like there is a length check missing somewhere :).


Thanks for that help, I'll correct and re upload, server me right for trying to put some instructions in the description :). 

You can always put the instructions in the Forge component's description, that's where people will go to understand how to use it anyways... or in your demo app, sometimes I see people adding screens with just the description of how to use the components.

Yeah will do, just didn't know there was a limit because it let me put more in :)


Really odd, I've removed every description in both the component espace and the demo, removed all descriptions against the applications and still get the error. Think I may have to recreate the espaces and application from scratch.

Ok this is now driving me nuts. I created brand new espaces and started from scratch, both component and demo. Entered only a couple of words description in the application itself and nothing in any of the espaces. I even removed the component from the forge and created a brand new submission. Still get the same error when trying to install from the forge.

New component link is https://www.outsystems.com/forge/Component_Overview.aspx?ProjectId=5155 but I've just about given up trying to share it

Solution

Hi John,

This application seems to have still a very long description which seems to similar to the the previous one:

<p><br></p><p style="margin: 0px 0px 10.66px"><font>We created this component to make it easier to embed cross application pages within a popup dialog or iframe without the need to link references between different application. This has allowed us to create dynamic or data driven “soft” links between our applications.</font></p><p><font>The component works by creating a javascript <span style="margin: 0px"> </span>onmessage handler in the parent page and then using the window.top.postMessage function within the child iframe page to send a message back to the parent.</font></p><p><font>Restrictions :-</font></p><ul><li><font>Communication is currently only available from the child to the parent. Parent to child communication will be coming in a future version</font></li><li><font>Both parent and iframe must be on the same domain otherwise you will get browser cross domain errors</font></li></ul><p><font>Usage :- </font></p><p><font>To use the iFrameComms component place the iFrameComms webblock on the parent page along with an iframe in which you embed the child page. Next connect to the notify event of the iFrameComms webblock. From within the child page you then call the SendMessage action which will then trigger the notify event on the parent window.</font></p><p><font>You can pass complex structures between the child and parent by encoding a structure as JSON and then decoding it within the notify event as per the sample on this page.</font></p><p><font>Sending a message :-</font></p><p><font>To send a message simply call the SendMessage action. You can send complex messages by doing a JSONSerialize of a record or list and then passing the resultant string to the action. </font></p><p><br><img src="/FroalaEditor/Download.aspx?GUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"></p><p style="margin: 0px 0px 10.66px"><span style="margin: 0px"><font><img height="349" style="width: 63px"></font></span></p><p><font>Receiving a message :-</font></p><p><font>In the Notify event of the iFrameComms webblock you call NotifyGetMessage to retrieve the text message. For complex message you can then use JSONDeserialize to convert the text back to a record or list.</font><span style="margin: 0px"><font><img height="411" style="width: 91px"><br><img src="/FroalaEditor/Download.aspx?GUID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"></font></span></p><p><br><br></p>

(I just replaced the GUID for Xs, out of crazy safety precaution)

I'll flag this to OutSystems, but it seems the OAP being downloaded still has the same Description as the other I tested?... or maybe it's getting its description from the Forge itself.

Solution

That looks very much like the description I put in the forge. But I created a new component and submitted to the forge with a shorter description just in case. Really odd. Maybe because the component had the same name? I'll to a text search across the entire espace just in case I've been stupid and missed something

Edit. Yep thats the description I put in the forge. Which explains why it didn't limit me to 2000 characters. But now even when deleting the forge description I can;t get it working.

And those GUID's were just links to images that I pasted in the forge description, so yeah the text from the forge seems to be loading into the component OAP

Ok your spot on. Turns out that an OAP file is just a zip file :). I looked inside and the manifest.xml file has the forge description. When I edited it directly and reconstructed the zip the OAP can now be loaded. 

So two things remain

1) Why does the description in the manifest seem to use the original one even when I've edited it in the forge, and why does uploading a NEW component use the description from an old disabled component.

2) If the description is limited in the OAP when installing then it should either be limited in the forge or at least truncated when publishing.

Hey John,

I'm told by the team responsible that it has been fixed, can you check if everything now works?

Yeah will do, just did know there was a limit