Skip to main content

Notifications

Announcements

No record found.

Finance | Project Operations, Human Resources, ...
Suggested answer

PSTL error : Illegal address for field 'syShortcutMstr' in script 'GPSTK_RecreateTable'. Script terminated.

(0) ShareShare
ReportReport
Posted on by 28,021 Super User 2024 Season 1

Today I was trying to rebuild all the DYNAMICS system tables from a customer's environment, as we had made some changes to the account framework, and needed all the Financials tables recreated as well to adjust for proper new length.

Using the PSTL > Toolkit > Recreate SQL Objects > Recreate Tables for Selected Series, I was able to redo all the data GL related tables in all companies without getting a single error and losing a single data.

At the end I wanted to redo also the DYNAMICS system tables, just in case some of them would have any relation, and also to see how many tables would be recreated.

At 29% into the process the PSTL threw up an error with the message "Unhandled script exception: Illegal address for field 'syShortcutMstr' in script 'GPSTK_RecreateTable'. Script terminated" on the table SY01990. 

After checking its content, I noticed that this table contents all the user's navigation shortcuts from their home page (the one on the left side). I tried several tricks, like dropping the table manually in the system after saving the data, and having the PSTL re-create it, but no luck, whatever and however I tried, it would end up with the same error.

I took to my brand new GP 18.2 demo (Fabrikam) setup and ran the exact same process, but this time just on the single table SY01990 that was already identified as the source problem.

pastedimage1583882091927v1.png

And I was able to reproduce the exact same error. 

I scoured the net and couldn't find a single report for the exact same issue.. of course the error message is pretty generic if your remove the table name 'syShortcutMstr' (which is SY01990). Maybe Microsoft could chime in and confirm that this is indeed a bug ? 

Thanks in advance for any reply.

Categories:
  • Beat Bucher  GP Geek  GPUG All Star Profile Picture
    Beat Bucher GP Gee... 28,021 Super User 2024 Season 1 on at
    RE: PSTL error : Illegal address for field 'syShortcutMstr' in script 'GPSTK_RecreateTable'. Script terminated.

    Thank you Derek,

    I went thru pretty much the same steps you did (except re-installing PSTL, as I knew I already had the latest published .cnk file for 18.2) and ended up in the same boat.. no way to get PSTL past this table. I also didn't created a DEXSQL log, but that would have been my next step if no one answered herein.

    It must be something in the code of PSTL itself, but I don't know the underlying logic that processes the table creation.. in fact I'd even say it's not the PSTL, but the main GP dictionary that is faulty. The structure somehow has some wrong information..

    I tried to use the SQL Maintenance in GP, but since it doesn't identify clearly the tables by their physical name, I wasn't sure about which one to use.. There is a Shortcut Master, but it didn't do anything to the SY01990 table.

    Thanks for taking this in to your team.

  • Suggested answer
    RE: PSTL error : Illegal address for field 'syShortcutMstr' in script 'GPSTK_RecreateTable'. Script terminated.

    I was able to re-create the issue on the SY01990 table via the PSTL Toolkit, trying to re-create it. The error shows exactly as you have it:

    "Unhandled script exception: Illegal address for field 'syShortcutMstr' in script 'GPSTK_RecreateTable'. Script terminated."

    Looking at a dexsql.log of just processing this table, it first looks at sysobjects for SY01990 table, then drops the temp SY01990ta table, if exists.

    It then does a Select * Into SY01990ta temp table from the SY01990 table, then for some reason moves to the company database, fefore ending on this script, with no additional error message after it:

    declare @DexProc char(255) declare @DropProc char(255) declare tcursor cursor for select o.name from sysobjects o where name like 'zDP_SY01990%' open tcursor fetch next from tcursor into @DexProc while (@@fetch_status <> -1)  begin  exec ('drop procedure ' + @DexProc) fetch next from tcursor into @DexProc  end deallocate tcursor

    If I click OK on the error, it does a call on the SY30000 table and SY01402 table, that's it.

    I tried removing the dictionary file for PSTL out of my GP code directory as well as from the Dynamics.set file, then using the newest tautil.cnk for 18.2.xxxx Dynamics GP to re-add PSTL to my GP directory and then once I logged in as 'sa', I launched PSTL again, which automatically re-created the files as it would a new install. 

    I then tested the Toolkit re-creating the SY01990 table again, which gave me the same exact error message.

    I found the Sy01990ta temp table still existed, as did the SY01990 table, both with the same data, so I dropped the temp SY01990ta table, but it gives the same error message.

    Out of curiosity, I tried re-creating the SY01990 table by doing a SELECT * INTO script into a SY01990BAK table, dropping the original SY01990 table, re-creating it and putting data back into it, all of which worked fine, leaving the issue of trying to do so in PSTL.

    I didn't see it written up yet, but will probably end up doing so.

    Thanks for the information.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Verified Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,391 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,445 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Product updates

Dynamics 365 release plans