cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to Activate Smartform After ERP 6.0 Upgrade

Former Member
0 Kudos

Since upgrading from R/3 4.7 to ECC 6.0 one of our smartforms has stopped functioning in the upgraded DEV environment.

When running the check on the smartform the following error is displayed:

Global Definitions

Field "STRING" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement. .

This sounds like a syntax error to me, but I cannot understand why this form activates fine in our 4.7 DEV environment but not in ECC 6.0

I've tried running the check on the 'Initialisation' code of the 'Global Variables' node and that executes successfully. I'm at a loss as to where this error is occurring, does anyone have any suggestions?

Thanks,

Richard

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

May be what u can do is, take the generated FM name of the smartforms, and goto SE37 display the FM & search for the word 'STRING'.

Hope it helps!!

Rgds,

Pavan

Former Member
0 Kudos

The function module contains the following, anything look out of place?

[FM Code|http://www.richread.net/fm.txt]

former_member555112
Active Contributor
0 Kudos

Hi Richard,

This just contains the code of the FM and not of the subroutines used within it.

It would be difficult for you to show the entire code.

Just try to syntax check and activate the FM via SE37. You will get the error.

Probably some data declaration is missing or in some code section of the smartforms; some variable has been used but it is not passed in the importing or exporting tab.

Regards,

Ankur Parab

Former Member
0 Kudos

That's the confusing thing - when I syntax check the FM I don't get an error. In fact, I've tried syntax checking any code I can find within the smart form and all pass. The only check that fails is the overall one in transaction SMARTFORMS. I then get the error as per below:

[Error|http://www.richread.net/images/error.jpg]

Thanks for your help with this.

former_member555112
Active Contributor
0 Kudos

Hi,

Can you show or check the GLOBAL definitions; the TYPE tab; Initialisation TAB, Routines Tab?

Check if there is some error in that.

If still nothing is there then try GENERATING the smartform to see if the error still persists.

Regards,

Ankur Parab

Former Member
0 Kudos

Thanks Ankur.

I've tried running a check on all of those tabs and they all say 'executed successfully'.

Some screenshots of what is on these tabs can be found [here|http://www.richread.net/docs/smartform.doc]

former_member555112
Active Contributor
0 Kudos

Hi,

I am also surprised since everything seems fine.

But is still suggest that you have a look at the importing and exporting areas in the initialisation tab.

Scroll properly and check.

Sometimes due to the scroll bar you are not able to see the code propely.

I am sure these is some variable named as STRING in the code.

Maybe some uncommented line.

Regards,

Ankur Parab

former_member555112
Active Contributor
0 Kudos

Hi,

Does it give error if you GENERATE your smartform?

Regards,

Ankur Parab

Former Member
0 Kudos

I'm not sure what you mean by GENERATE, is that the same as Activate? If so, then yes when I click activate I get the same error.

I've tried removing all of the Initialization code and the error still occurs, so the error must be elsewhere - although I really can't think where that is!

Thanks again.

former_member555112
Active Contributor
0 Kudos

Hi,

Go to SMARTFORMS transaction.

type your form name and without choosing change or display in the menu options you will find

Smartforms-->Generate.

try this.

regards,

Ankur Parab

Former Member
0 Kudos

Ah I see. I've tried generating and get Message no. SMARTFORMS210

'Error during generation'

I'm running out of ideas! Is there any where else on a smartform which could hold a code snippet?

Thanks.

former_member555112
Active Contributor
0 Kudos

Hi,

As far as your error is concerned it is in global declarations only.

Check in the Form Interface tab in IMPORT, EXPORT, TABLES.

Regards,

Ankur Parab

Former Member
0 Kudos

I've tried removing everything from the 'Initialization' tab (Input Parameters, Output Parameters and Code) and I still get the error.

Something which may or may not be related is that when I click on the red triangle next to the error message the screen flicks to the 'Form Routines' tab which is blank! This tab is blank in our old DEV system and the smartform activates fine.

What is the purpose of this tab?

Thanks.

Former Member
0 Kudos

Hi,

1.Check if you declared some field named String in Global definitions of your smartform.

2. Check the top include of the generated function module for the field 'String'

3. Try to copy the smartform to different name and try to activete the new smartform.

4. If every thing seems okay for you try to download the smartform using download option from Utilities and delete the current smartform and upload it again.

Most of these kind of unkown errors will get resolved doing so.

Regards

Kiran.

former_member555112
Active Contributor
0 Kudos

Hi,

In this tab basically you write some subroutines which you can use in your smartform.

Just scoll in that to see if some comment is there.

Regards,

Ankur Parab

Former Member
0 Kudos

Hi,

The form tab is used to write the Global routines which we can use at any part of the smartform. It's like a top include where we can write the form logic for all perform statements.

Check in that if there is any code in your new ECC system.

Do ctrl + a delete in that forms tab once and try to activete the form.

Regards

krian

Former Member
0 Kudos

I'm actually making some progress. As I'm sure is painfully obvious I'm new to all of this.

The error is being created by an entry on the 'Import Tab' of the 'Form Interface' node ([See Here|http://www.richread.net/images/import.jpg]

If you remove the entry

IV_COPY LIKE STRING

The the error then changes to:

Field "I" is unknown. It is neither in one of the specified tables nor defined by a "DATA" statement. .

Which is the next entry in the table. If I remove all of the IV_* entries then the error moves on to:

The field " IV_COPY" is unknown, but there is a field with the similar name "GV_COPY". .

It looks to me that the issue is with the variable declaration of IV_COPY in ECC 6.0 Any suggestions on how to rectify this?

Former Member
0 Kudos

Hi

Try changing LIKE to TYPE in the delcarations (i e in the 'Import Tab' of the 'Form Interface' node ).

IV_COPY TYPE STRING.

This will solve you issue

Thanks

Kiran.

Edited by: kiran Pasala on Jun 23, 2009 5:13 PM

Former Member
0 Kudos

Thanks for that Kiran.

That makes a lot of sense (I'm not an ABAPer but have developed in other languages and I'd imagine you have to use TYPE because STRING is a type and not a field, table or anything else.)

It now seems to be working...the only annoying thing is that it still work's fine in our old DEV system where the parameters are still declared as LIKE - I guess the syntax check used to be more forgiving in 4.7!

All help has been much appreciated!

Richard

Answers (2)

Answers (2)

naimesh_patel
Active Contributor
0 Kudos

I suspect the default value ' ' set to the variables GV_SURVEY_ADD, GV_GAS_OUTSTANDING.

Try to change it to the CHAR1 and activate.

Moreover, try to find out the word STRING in your Smartfrom (FM) and check if there are any inconsistency.

1) Press the Test button

2) Display the FM

3) Press the Search button (Binoculars)

4) Enter STRING as search

5) Select "Main Program" << Important

6) Hit find.

Regards,

Naimesh Patel

former_member555112
Active Contributor
0 Kudos

Hi,

Just try to syntax check the FM of the smartforms.

It will point where the field STRING is used. That might help.

Regards,

Ankur Parab