Addins for Ms Project 32 bits Corrupt data when paste from Clipboard to Number field
Hi,
I have a VB.net 2010 addins application for Ms Project 2010.
The objective of this Addins is to Connect to SAP PM by SAP.net Connector 3.0 to bring Work Orders (and operations) and Paste to Ms Project Task Table.
Development Machine:
- Windows 7 Pro, Spanish Language, 64 bits
- VS.net 2010 Pro, English Language
- Ms Project 2010, English Language, 64 bits
Target Machine:
- Windows 7 Pro, Spanish Language, 64 bits
- Ms Project 2010, Spanish Language, 32 bits
I generate 2 Installer: One for 64 bits, and other for 32 bits. Both version have exactly the same lines of code.
Running Addins in a 64 bits version of Ms Project 2010 works fine, but in a 32 bits version, corrupt data when paste large values to Number Custom Fields (Ex.: 94137750 is corrupted to 94137752, 94048923 is corrupted to 94048920, etc.). This failure doesn't occurs when paste small values like "10" or "44502".
The steps to put the records to clipboard and paste this values to Ms Project Task table are the following:
- Step 1: Add records to a String variable. "VbTab" Delimiter between fields and "vbNewLine" delimiter between records.
- Step 2: Put de String variable into the clipboard and Paste it to Ms Project Task table.
Lines of code:
Step 1:
mystring = mystring & Tabla.GetString("PLTXT").ToString.Replace(Chr(34), "´´") & vbTab & "OP" & vbTab & Tabla.GetString("EQKTX").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("ltxa1").ToString.Replace(Chr(34), "´´") _
& vbTab & Tabla.GetString("arbpl").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("steus").ToString.Replace(Chr(34), "´´") & vbTab & vbTab & Tabla.GetString("EQFNR").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("EQFNR1").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("equipo").ToString.Replace(Chr(34), "´´") _
& vbTab & Tabla.GetString("revision").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("NOMAREA").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("tplnr").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("prioridad").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("CLASEO").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("CENTROE").Replace(Chr(34), "´´") _
& vbTab & Tabla.GetString("nomemplaza").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("LOCAL").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("area").ToString.Replace(Chr(34), "´´") _
& vbTab & Tabla.GetString("responsable").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("grupop").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("centrop").ToString.Replace(Chr(34), "´´") _
& vbTab & Tabla.GetString("proveedor").ToString.Replace(Chr(34), "´´") _
& vbTab & Tabla.GetString("CLASEAOP").ToString.Replace(Chr(34), "´´") & vbTab & vbTab & Tabla.GetString("destinatario").ToString.Replace(Chr(34), "´´") & vbTab & Tabla.GetString("puestodescarga") & vbTab & vbTab & Tabla.GetString("nomfantasiaprov").ToString.Replace(Chr(34), "´´") & vbTab & vbTab & sContrato & vbTab & dTrabajoR1 _
& vbTab & Tabla.GetString("aufnr") & vbTab & Tabla.GetString("vornr") & vbTab & Tabla.GetString("MAUFNR") & vbTab & sRecurso & vbTab & sFIniAux & vbTab & sFIniRAux & vbTab & sFinRAux & vbTab & sDuracion & vbTab & sTrabajoR & vbTab & vbNewLine
Step 2:
My.Computer.Clipboard.Clear()
My.Computer.Clipboard.SetText(mystring)
Globals.ThisAddIn.Application.EditPaste()
My.Computer.Clipboard.Clear()
Table.GetString("Aufnr") contains the value from SAP to paste to Ms Project Number Custom Field, which one is corrupted.
When I run the application in Debugging Mode, I can check that Table.GetString("Aufnr") has the right value, however, changes this value when paste to Ms Project Table. I Tried to write the value directly into the Number Custom Field and works fine.
I made some test replacing Table.GetString("Aufnr") by a constant (example: "94137750") and was pasted successfully.
The size of Table.GetString("Aufnr") is CHAR(12) with redundant zeros like "000094137750". I Tried removing zeros before passing this value to String variable, however, I have the same result.
Thanks in advance,
Manuel.