Microsoft Product Support

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg
Showing posts with label OLE Container. Show all posts
Showing posts with label OLE Container. Show all posts

Tuesday, 12 February 2013

OLE Notes and Microsoft Dynamics GP 2013 Web Client

Posted on 06:05 by Unknown
In the past years, I have written extensively about Microsoft Dynamics GP OLE Notes and the Dexterity OLE Container application, in the hopes of finding a way to extract the Container documents and links (unsuccessfully so far) as a result of several issues I have encountered in the past with customers attempting to migrate their notes to a different server, see:

All about the Dexterity OLE Container
All About Dexterity OLE Container - Follow Up

My good friend David Musgrave has also written a couple articles on the subject of record notes in two articles as well, see:

Understanding Notes and the Note Index field
OLE Attachments and Record Notes

Now with the release of Microsoft Dynamics GP 2013 Web Client, a new challenge is presented around the use of OLE Notes: the OLE Container cannot be exposed to the Silverlight application.

The Dexterity OLE Container, from past articles, is a 32-bit C++ application and as such, calls to the paperclip attachment button made from the Silverlight application will launch the Container in the Silverlight application - that is expected.

Let's take the following sequence of events, where an OLE attachment is added to an item number in the rich client environment. The attachment and all the behavior we expect occur normally and we get an indicator of an attachment being present.

Rich Client with OLE Container Note
Under the web client, you will still get an indicator of the record note being present, along with the "OLE Link present." message, but will not be able to access the OLE attachment as there's no paperclip button - and by definition, you cannot load a Win32 program from within a Silverlight application front-end - again, this expected.

Web Client displaying attachment present, but no paperclip button

Upon closing the note window, the note indicator disappears for the record being displayed, conveying the impression that there's no record note attached.

Web Client no longer shows an attachment being present

But back in the rich client, if you retrieve the record once more, the "OLE Link present." message is restored and the OLE attachment is certainly present.

Rich client still shows attachment and re-adds the "OLE Link present" text.

In summary, it seems this is just a behavior you will experience on the Web Client, but rest assured that your notes and attachments are still there, just the visual cue is not updating properly upon closing the note window under Web Client. I am sure the good folks in the Microsoft Dynamics GP Development team are already looking into this.

Now, since you are not able to use the Dexterity OLE Container in the Silverlight application, the alternative is to - perhaps - slowly but surely migrate your notes to the more robust Document Attachment feature. I will talk more about this in my next installment and will also compare it to your traditional Dexterity OLE Container notes.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/
Read More
Posted in Dynamics GP 2013, Notes, OLE Container, Troubleshooting, Web Client | No comments

Friday, 6 August 2010

All About Dexterity OLE Container - Follow Up

Posted on 05:19 by Unknown
Mr. Steve Endow over at Dynamics GP Land managed to unearth my All about the Dexterity OLE Container article in response to a question he fielded from a user who no longer used GP, but wanted to know if they could extract the content embedded in the note files.

In my 2008 article I explained the intrinsic details regarding how OLE notes where created and stored in GP and promised a follow up with a way to automate or access these files externally from GP. During the past two years I have never stopped researching (on and off of course) how these files could possibly be accessed. At the end of the day, it comes down to identifying the actual storage compression algorithm used.

As part of this research, I tested a few tools including Corel's WinZip tool, which is often considered a very good tool for identifying obscure storage compression formats. However, I had no luck with WinZip. I also tried (successfully I may add) creating my own OLE container application, but failed to be able to open the Dexterity OLE Container files created by GP with it.

Over the course of my research, I came across an open source tool called 7-Zip written by Russian programmer Igor Pavlov. Pavlov managed to implement a number of compression algorithms in his tool, some even used in the early days of computing. So I decided to download 7-Zip, install it and give it a try.

To my surprise, 7-Zip was able to open a Dexterity OLE Container note file and display its content as shown below:


7-Zip shows a directory structure for the file including a contents file and an Embedding folder. I was then curious about the Embedding folder. As the name would suggest, it would probably hold the actual content of the notes itself. Earlier, I had attached a file called intellisense.txt to our favorite customer AARONFIT0001 to verify what I would see. So, on I went to open the Embedding folder, which now showed two files:


The larger file ( [1]OLE10Native ) seemed more promising than the smaller one, so I decided to edit it. All that's needed is to press F4 or go to the file menu to edit the file. Upon editing it, the file displayed in the traditional NOTEPAD.


Note that the [1]OLE10Native file displays the actual text stored in the IntelliSense.txt file. Since this file was directly embedded into the note not as a link, it would suggest that changes to this file would not affect the actual file stored on my desktop. In addition, it should be noted that the path to the actual file is stored at both the header and footer levels. This is crucial for those of you attempting to migrate your OLE files from one location to another.

I then decided to perform another test by attaching something a bit more complex, a PDF file. This time though, I decided I would attach the file as a link and would display as an icon. When a file is attached as a link, changes made to the actual file, are reflected automatically in the container.



In exploring each file, the [1]Ole file had all the information on where to find the actual link to the file:



Once again, these links can be edited if you must migrate your notes to another directory on your network.

But the question still looms -- What storage compression algorithm is used to store these files? Clearly, 7-Zip was able to open them and even expose the contents. I have a theory on the algoritm, but more on that in my next post -- and trust me, you won't have to wait 2 more years!

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC
http://www.maximumglobalbusiness.com/
Read More
Posted in Dexterity, OLE Container | No comments

Tuesday, 16 February 2010

"You have too many note windows open. Close a note window" Error Message

Posted on 05:00 by Unknown
Recently, a system administrator reported a user getting this error and was asking what could be the possible cause for this.



Replicating the error is very simple, and for this, we need a Microsoft Dynamics GP window where many note windows can be entered/opened at once, take for example the Sales Transaction Entry window, which has access to 7 potential notes: the document type, the document number record note, the customer ID record note, the batch ID record note, the site ID record note, the currency ID record note, and the item number record note.



If you attempt to access all these notes at a time will prompt the system to error out when attempting to open a 6th note window. Taking advantage of the Windows 7 Aero interface, one could see why an end user will not realize they have 5 note windows opened at once.



But now to the technical issue...

To display notes -- record level notes -- the Dynamics GP development team has created five forms, righfully called Form_Note_1, Form_Note_2, Form_Note_3, Form_Note_4, and Form_Note_5. Each time a note is added, the code will check for the availability of one of these 5 forms to be able to open the corresponding note window so the user can either type a new note or read an existing one. If all note forms are opened at the same time, then an attempt to open a sixth note will fail with the error described at the beginning. The solution? Close an unused note window.

Why not create more note forms? 25 years and 11 major releases later, this is an expensive proposition. There is a lot of code in older Microsoft Dynamics GP forms that handle their own calls to validate which of the 5 note forms is open. In newer form objects, these call checks have been replaced by a single call to methods added to the NoteObj form, but unfortunately, "retrofitting" the entire Microsoft Dynamics GP application to work with the NoteObj form is a project in itself that would require tons of testing to make sure nothing gets broken in the process. Certainly, if all the application could be retrofitted to handle calls to the NoteObj form, then adding an extra note form is not so much of an issue anymore... but there lays the problem. Adding this extra form would also cause all third party developers and ISVs to retrofit their code to manage this extra form too. Then comes the philosophical question... what if we want to open a 7th note, or an 8th... do we keep adding more forms? How many note forms would be enough?

More information on Notes, Note Index and OLE Attachments can be found at:

Developing for Dynamics GP - Click here
The Dynamics GP Blogster (this site) - Click here

Until next post!

MG.-
Mariano Gomez, MVP
Maximum Global Business, LLC.
http://www.maximumglobalbusiness.com/
Read More
Posted in Functionality, Notes, OLE Container | No comments
Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • Vote for your 2012 GPUG All Star
    The time has come again to vote for the next year's GPUG All Star awards. Surprisingly, I have been nominated to this award along with f...
  • The Dynamics GP Blogster's best articles of 2012
    It's that time of the year again! Time to say goodbye to the outgoing year, 2012, and receive the new one, 2013, making all sort of reso...
  • Year-to-year Inventory Margin Report using the PIVOT operator in T-SQL
    As of late I have been camping out at the SQL Developer Center's   Transact-SQL Forum  and I have to say, I have learned a great deal fr...
  • Extender Auto Open and Auto Close options not working in GP 2010
    Just recently, I came across an issue reported by a partner on Extender Auto Open and Auto Close options not working. Extender Auto Open a...
  • Adding Customer Item User Defined fields to SOP Invoice
    Just recently I ran across a request to add the Customer Item user defined fields to the Sales Blank Invoice Form report in Report Writer. A...
  • How to add a "Cover Letter" page to a Microsoft Dynamics GP Word Template document
    I wrote an article almost a year ago showing a simple technique to add a  Terms and Conditions page to a Microsoft Dynamics GP Word Templat...
  • What's new in Microsoft Dexterity 11.0
    The excitement around Microsoft Dynamics GP 2010 could not be any higher. Traffic on my site has doubled since I began releasing informatio...
  • New Article on MSDynamicsWorld: Do's and Don'ts of Microsoft Dynamics GP Forums
    Many of you know me as an avid forum contributor - I can usually be found on the Microsoft Dynamics GP Partner Online Technical Community ...
  • Management Reporter: Server Error in Application "MANAGEMENT REPORTER"
    Just recently, I fielded a question on an issue that was happening with a Management Reporter installation. The partner reported getting the...
  • Post through from Microsoft Dynamics GP Manufacturing
    As if Post Through wasn't hard enough to understand for the core financial and distribution modules (take a look at my previous article ...

Categories

  • Ad Campaigns
  • ADO
  • Adobe Acrobat
  • Analytical Accounting
  • Architecture
  • Around the Blogosphere
  • Article
  • Azure
  • Bank Reconciliation
  • Best of 2009
  • Best of Series
  • Best Practices
  • Bing Maps Enterprise
  • Books
  • Business Alerts
  • Business Analyzer
  • C#
  • Code
  • COM
  • Community
  • Compliance
  • Connect
  • Continuum
  • Convergence
  • Corporate Performance Management
  • CRM
  • Database Maintenance Utility
  • Decisions Conference
  • DEX.INI
  • DEXSQL
  • Dexterity
  • Discussions
  • Drill-Down Builder
  • Dynamics GP 10
  • Dynamics GP 11
  • Dynamics GP 12
  • Dynamics GP 2010
  • Dynamics GP 2010 R2
  • Dynamics GP 2013
  • eConnect
  • EFT
  • Electronic Banking
  • Encumbrance
  • Events
  • Extender
  • Field Services
  • Fixed Assets
  • Forecaster
  • From the Newsgroups
  • FRx
  • Functionality
  • General Ledger
  • GPUG
  • Home Page
  • Human Resources
  • Humor
  • IMHO
  • Installation
  • Integration
  • Integration Manager
  • Internet Explorer
  • Inventory
  • Kinnect
  • Maintenance
  • Management Reporter
  • Manufacturing
  • Menus for Visual Studio Tools
  • Microsoft Office
  • Modifier
  • Multicurrency Management
  • Multitenancy
  • MVP Summit
  • MVPs
  • Named Printers
  • Navigation Pane
  • Notes
  • ODBC
  • Office Web Components
  • OLE Container
  • Online Services
  • OpenXML
  • Partner Connections
  • Payables Management
  • Payroll
  • Performance
  • PO Commitments
  • Printer Compatibility
  • Product Feedback
  • Project Accounting
  • Purchasing
  • Receivables Management
  • RemoteApp
  • Report Writer
  • Reporting
  • Roadmap
  • SafePay
  • Sales Order Processing
  • Season Greetings
  • Security
  • Service Call Management
  • SharePoint
  • SmartList and SmartList Builder
  • SQL Reporting Services
  • SQL Scripting
  • SQL Server
  • Support Debugging Tool
  • Tax Updates
  • Technical Conference
  • The Partner Event
  • The Technology Corner
  • Training
  • Translation
  • Troubleshooting
  • Upgrades
  • VAT
  • VB.NET
  • VBA
  • VBScript
  • Visual Studio 2008
  • Visual Studio Tools
  • Web Client
  • Web Services
  • Windows 7
  • Windows 8
  • Word Templates
  • XBox
  • XBRL

Blog Archive

  • ▼  2013 (68)
    • ▼  December (2)
      • Visual Studio Tools for Microsoft Dynamics GP 2013...
      • Web Client Wednesday: Microsoft Dynamics GP on Azure
    • ►  November (8)
    • ►  October (5)
    • ►  September (5)
    • ►  August (3)
    • ►  July (8)
    • ►  June (5)
    • ►  May (5)
    • ►  April (2)
    • ►  March (11)
    • ►  February (6)
    • ►  January (8)
  • ►  2012 (101)
    • ►  December (8)
    • ►  November (6)
    • ►  October (15)
    • ►  September (16)
    • ►  August (9)
    • ►  July (4)
    • ►  June (4)
    • ►  May (6)
    • ►  April (4)
    • ►  March (11)
    • ►  February (4)
    • ►  January (14)
  • ►  2011 (158)
    • ►  December (7)
    • ►  November (17)
    • ►  October (7)
    • ►  September (8)
    • ►  August (8)
    • ►  July (12)
    • ►  June (12)
    • ►  May (13)
    • ►  April (23)
    • ►  March (21)
    • ►  February (10)
    • ►  January (20)
  • ►  2010 (168)
    • ►  December (15)
    • ►  November (11)
    • ►  October (12)
    • ►  September (24)
    • ►  August (13)
    • ►  July (12)
    • ►  June (8)
    • ►  May (17)
    • ►  April (14)
    • ►  March (9)
    • ►  February (16)
    • ►  January (17)
  • ►  2009 (5)
    • ►  December (5)
Powered by Blogger.

About Me

Unknown
View my complete profile