cancel
Showing results for 
Search instead for 
Did you mean: 

Framework could not initialize IAC [...]

Former Member
0 Kudos

Hello

I have a problem I don't understand at all... I made some changes to a tileset and its tiles in a changelist. They are all basic changes (corrections of specific methods, translations, field mode change, etc...)

In Mobile Sales, when I try to go to that tileset, I get an error "Framework could not initialize IAC Product Details (Tcamcprodl2)"

What I don't understand is, when I select the "Break on all errors" option (<i>standard for debugging on VB6, but with MSA it is just impossible because of all these "On Error Resume Next" or errors just discarded with an error handler put just before the End Sub statement, all in the standard code, not specific... Hmm ok, I stop complaining ;)</i> ) it stops right in the <b>ICustIAC_assign</b> method, though it is added in the code auto-formatting, with an Error 13 : Type mismatch.

(note :

Somehow this method is called by another which has an On Error statement, because with the "Break on Unhandled Errors" option the application crashes on an onUpdate event, at the first attempt to use a control in a method without error handling (Error 19 : Object variable or With block variable not set...).

)

Private Sub ICustIAC_assign(objects() As Variant, ByVal level As EAssignLevel)
        Select Case level
[...]
               Case ealControls
>>>               Set ctrlTPM_Brand = objects(0)
                  Set ctrlTPM_Category = objects(1)
                  Set ctrlctrlHierarchyT = objects(2)
                  Set ctrlctrlMainProductT = objects(3)

Ok so here, I added a watch on the <i>objects()</i> variable, it contains all my objects but their order is wrong : after modifying the indexes the code went on without crashing.

I don't know how the objects order is defined, but when I check my changelist (among the open changelists, the only one considering this tile) I don't see anything except that I changed some fields view mode from Normal or ReadOnly to Hidden. I also modified methods but they are considered after <b>CustIAC_assign</b>

What can I do, as that method is not available in Mobile Application Studio ?

-edit-

I checked the changes made to the tile itself (it seems that I only changed the fields display mode) and in the Version Tree chose "Copy to open version" with the previous release. After the generation, the error has disappeared !

I think I will re-apply the changes in the onLoad method, the only little drawback being that the user will see the controls disappear if their system is not fast enough at that time.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Francois,

which MSA release do you have?

One reason could be that you have to generate the whole UI and not just some tiles and tilesets.

I hope this is helpful.

Kind regards

Diana

Answers (3)

Answers (3)

Former Member
0 Kudos

Hmm.... I really don't get it !

Considering the tile <b>paschoicewinTCWSearch</b> (in MSA, Marketing/Products then the search tile of the popup to add products) :

- I built it recursively from the Baseline to revert any changes I made before : OK, I can access it

- I modified the onClicked method for the CLEAR button : OK after building recursively

   '[FFE] 2007.04.05 : Always empty the "Division" field
   If bDivisionReadOnly Then
        'ctrlDivisionI.Value = szDivisionValue
        ctrlDivisionI.Value = ""
    End If

- I modified the onLoad button of the Tile : after building recursively or not (between each I build from the Baseline to be sure it still works), I get the error described in my previous posts (Framework could not initialize IAC (TpaschoicewinTCWSearch) when I want to open the popup)!!

'[FFE] 2007.04.05 : Always empty the Division field
'ctrlDivisionI.Value = szDivisionValue
ctrlDivisionI.Value = ""

Because the method now appears in my changelist, in the Version Tree I chose "copy to open version" with the baseline version, so that I have only the 1st change with CLEAR button, and... I still get the error

Do you think I should try to release that changelist so that I can rebuild the application with "Generate All" (+ check the "Make DLL" option) ?

For now I am putting this change aside, if any solution is found I will be happy to re-open my changelist and fix it.

Thanks and Regards,

François

Former Member
0 Kudos

Well I'm in MSA 5.0 and that error occurs some times....solution....well....

Delete the changelist and start all over again. It usually fixes my problem.

I believe MAS has some sort of bug which screws the tileset. After this happens I can't even revert the tile inside the changelist.

Fortunatly I only have limited involvement in MSA development. MAS is a very, very, unstable IDE.

Former Member
0 Kudos

From my experience MSA is a pretty ok environment and works ok, or at least it did for me for the last 5 years. But then there are quite some components engaged in the MSA solution and not being aware of all of them makes the system a bit uncontrollable.

Generally: If you want to debug, it is ok to not check the 'make dll' check box. If you do this, the generation made is only viable for debugging, regardless of what you change, be it BOL or UI. If you want to use not the DLLs you need to do a complete generation (build->GenerateAll). Over the day I have it running only in debug mode. If you do it from a changelist, if includes also the contents. If developing I usually do this each evening. A delta generation with the 'make DLL' option is usually not stable since you do not have all the relevant code included. Working this way you should have a pretty stable environment.

Regarding your problem: The PASCHOICEWIN TS is used quite often, so if you change it once it has effects also to other tilesets that you might not regard. If you want the division empty you should also not do it at the place where you do it but rather modify the SetDivision Method and replace the line <i>szDivisionValue = Value

</i> with <i>szDivisionValue = ""</i>. That should be sufficient for the whole tile.

Regards, Kai

Former Member
0 Kudos

Ok I've just had a forum crashed when I sent my post and didn't copy/paste it in a text file, and I lost all... oops !

Diana, I guess you mean to generate the whole msa application ? If so, that would imply that i release my changelist to add it to the Baseline, which I don't want to do because it is not yet stable !

Kai,

a) I generated the changelist either with "Make DLL" option active (20 minutes and not required for just debugging) and inactive (2 minutes and ok for debugging so I usually leave the option unchecked) and I have never had an error or a warning reported

b) in the registry, the path is ok

My original problem was fixed by getting the version from the Baseline and now I have it on a popup called from this Tile, for which I only changed a method (changed object.value = <string variable> to object.value = "" so I don't think it is harmful for the compilation).

Anyway, I've decided to re-do the changelist because I modified a BO property though I changed another property for that BO in another changelist and it seems they overlap each other when I build the different changelists.

The good part is that with a new CL, I will be able to re-build my tile "from scratch" with the baseline version, then I will apply each change one by one to see where and when it starts to misbehave.

Thanks and Regards,

François

Former Member
0 Kudos

Francois

You get that error whenever the generated UI does not fit to the DLL lying underneath. This is most probably the case if

a) the compilation of your UI dll (like msa.dll) failed i.e. due to programming errors

b) the RelativeAppPath in the registry is not set to the directory where the generation target is.

Concerning

a): Make sure that the compilation was successful and that the UI dll has the correct date - the same as the html files

b) Search in the registry for RelativeAppPath and make sure it is the same as used in the generation targets. It starts from "..program files\sap". Standard is "\app\msa", but one you generate into the standard generation target folders it should be "\farmework\genapps\msa"

Regards, Kai