aminosoftware / lysine Goto Github PK
View Code? Open in Web Editor NEWdocumentation and releases for the Lysine data conversion tool by aminoSoftware
documentation and releases for the Lysine data conversion tool by aminoSoftware
Allow user to be able to type in the Column Name in the 'Scroll To Column' dropdown on the Cell Value Viewer. If precise match isn't found return columns that partially match what was entered.
Please add build version information to the License tab in Lysine so you can see what version of the tool you are running.
If you go in and setup a list of possible values for a FlagColumnValue and then click OK. Then try to go back and want to make changes to that list of values, the list is blank instead of being populated with the previously entered list values. If you have entries for the 'Equals' comparison, they show up fine when going out and back into the Comparison Builder. It just seems to be an issue for the 'List' box where it won't show the actual list of values. This is a pain because any changes to the list requires you to reenter the entire list instead of just making the one change.
Find a way to make the installer upgrade the Lysine tool in-place instead of requiring an uninstall of the current Lysine component and then install the new one. Or at least make it so that the installer does the uninstall and install as part of the tool under the covers instead of requiring the user to do this manually.
I had a layout defined and then I went to extract data from a file and realized I need to change the name of a Redefine Set. So I changed the redefine set, went to preview, clicked generate. Then went to the Input/Outputs tab on the component and made sure my mappings were fine. Tried to process the file and I get the error below. I tried refreshing the component manually. Still got the same error. The only way I could get it to go away was to do delete the component completely and remap the outputs.
The following warning message was encountered after the build on/around 7/13. This error doesn't go away unless specific user accounts are used that have specific permission to the server. These errors shouldn't be showing up as this permission was not required before the 7/13 build. Please review and resolve whatever is causing this error.
[SSIS.Pipeline] Warning: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available. To resolve, run this package as an administrator, or on the system's console.
With the Redefine Set, if I specify a list of items in the FlagColumnValue property and then later go back to change the items in the list, when I click the ellipses button it brings up the Comparison Builder screen, but the listbox is completely empty. So the only way to change the values in the list is by manually updating the XML directly or by reentering all of the possible list values again.
When inserting new columns into the layout the new column goes to the very end of the currently selected branch instead of going directly below the currently selected node within the currently selected branch. If you have a lot of nodes within a branch you either have to click the 'Move Up' button A LOT to get it in the right position or you have to manually edit the XML layout and re-import it. It would be more intuitive to have it insert it to a position relative to your current cursor position.
I have a Redefine column that is made up of 2 FlagClolumns columns. For example, ColA and ColB which are outside of the Redefine. I click the dropdown on the FlagColumn field and check the boxes next to each of the columns, ColA and ColB. I have each of the RedefineSet columns setup with FlagColumnValue expressions so that both ColA and ColB values are checked. If I go to the 'Layout' tab and preview my changes it works perfectly. However, if I click 'Ok' to save my changes to the connection manager, then re-open the connection manager, the FlagColumn only saved the checked value for ColA, but not ColB so if I go to the Layout tab and click Generate, it fails. If I go back and check the box next to ColB on the FlagColumn for the Redefine, it works again, but it won't ever save that value so the package fails.
Add a property to to a column to allow you to disable a column without having to actually delete it from the layout. This would allow you to leave the column in the layout, but it would not generate any outputs or be parsed. This would be handy to have to allow users to troubleshoot layout issues without having to edit the XML or having to delete a column completely from the interface just to see how it would affect file processing.
cannot be zero if only contains occurs depending…
When deleting a column from within a redefine/occurs/occursdepending on the layout tab, the entire layout tree collapses. Instead it should remain in the current state it is in, just without the specific column that was deleted.
If you encounter the below message or something similar
[EBCDIC File Source [2]] Error: System.Runtime.InteropServices.COMException (0xC0048004): Exception from HRESULT: 0xC0048004
at Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSCustomPropertyCollection100.get_Item(Object Index)
at EBCDICSource.EBCDICSource.PreExecute()
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute(IDTSManagedComponentWrapper100 wrapper)
The current fix is to remove your source and destination components and then add them back to your package.
I am unable to configure a nested redefine. I have a redefine configured for some record types and then within that redefine there is another section that has to be redefined further based on a column value. When I setup the nested redefine and try to preview it, I get an error saying 'Unsupported Nested Type'.
when you leave and comeback your position should be saved
When exporting a layout file the XML declaration is , if you modify it to fit normal xml standards to be the parser will throw an error of "Name cannot being with the '.' character, hexadecimal value 0x00". If you remove the 'encoding="utf-8"' it works fine, but the XML is valid, unless there is some other encoding being used by Lysine. Could you make the file import process handle the encoding attribute in the XML declaration?
We are seeing occurs columns defined like:
02 ADDL_DATA_GROUP.
03 ADDL_DATA OCCURS 99 TIMES.
05 ADDL_SEG_KEY.
10 ADDL_SEG_KEY_PROD PIC X(02).
10 ADDL_SEG_KEY_TYPE PIC X(01).
05 FILLER PIC X(47).
But the parser is currently returning:
<?xml version="1.0" ?>
<Definition>
<AminoSoftware.Ebcdic.Definition>
<Columns/>
</AminoSoftware.Ebcdic.Definition>
</Definition>
Which is clearly wrong.
SSIS project target - 2019
Lysine 2019 64 bit installed
Preview works!
Runtime gives ----
SSIS package "C:\Users\Ben Harrell\source\repos\Integration Services Project_clean2019_test\Integration Services Project_clean2019_test\Package.dtsx" starting.
Information: 0x4004300A at Data Flow Task, SSIS.Pipeline: Validation phase is beginning.
Information: 0x0 at Data Flow Task, Amino Software - Lysine: AcquireConnections::EBCDIC Source - version: 1.3.0.4300
Information: 0x0 at Data Flow Task, Amino Software - Lysine: RC length: 1
Information: 0x0 at Data Flow Task, Amino Software - Lysine: RC [0] id string: EBCDIC File Source.Connections[EBCDIC Connection]
Information: 0x0 at Data Flow Task, Amino Software - Lysine: RC [0] id: 6
Information: 0x0 at Data Flow Task, Amino Software - Lysine: RC [0] name: EBCDIC Connection
Information: 0x0 at Data Flow Task, Amino Software - Lysine: RC [0] CM id: {38C50F31-4078-4B8F-8738-6DC5959DF6A3}
Information: 0x0 at Data Flow Task, Amino Software - Lysine: RC [0] CM:
Information: 0x0 at Data Flow Task, Amino Software - Lysine: RC [0] object type: OT_RUNTIMECONNECTION
Information: 0x0 at Data Flow Task, Amino Software - Lysine: AcquireConnections::Is conn mgr null (get wrapper): False
Error: 0xC0047062 at Data Flow Task, EBCDIC File Source [2]: System.NullReferenceException: Object reference not set to an instance of an object.
at Microsoft.SqlServer.Dts.Runtime.ObjectHostImpl.get_InnerObject()
at Microsoft.SqlServer.Dts.Runtime.ConnectionManager.get_InnerObject()
at EBCDICSource.EBCDICSource.AcquireConnections(Object transaction)
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnections(IDTSManagedComponentWrapper100 wrapper, Object transaction)
Error: 0xC0047017 at Data Flow Task, SSIS.Pipeline: EBCDIC File Source failed validation and returned error code 0x80004003.
Error: 0xC004700C at Data Flow Task, SSIS.Pipeline: One or more component failed validation.
Error: 0xC0024107 at Data Flow Task: There were errors during task validation.
SSIS package "C:\Users\Ben Harrell\source\repos\Integration Services Project_clean2019_test\Integration Services Project_clean2019_test\Package.dtsx" finished: Failure.
If the only thing that changes in a layout is the column length of a field, the refresh doesn't work. In my situation I had a column named ColumnA and it went from being a length of 3 to a length of 4. I went into the EBCDIC Source component, went to the Input/Outputs tab and clicked 'Refresh'. Then when the package is run it errors saying that the output is not big enough. If you delete the EBCDIC Source component, load the same layout, and wire up the outputs it works fine. I validated that the database source was fine, it just has issues with the output not being the correct size now that the data flowing to the output is longer than what it was.
Allow for the selection of multiple columns (either sequential columns or columns randomly throughout the layout) and allow for the deletion of the selected columns.
If you unassign a FlagColumn from a Redefine, you can no longer see the FlagColumnValue expression in the list to remove it. Without being able to remove it, you can't delete the referenced column. So if you want to delete a column you have to know that first you have remove the FlagColumnValue expressions on each of the RedefineSets, then remove the FlagColumn check box, then delete the column. It seems like it would be more intuitive if you attempt to delete a column that is referenced in a Redefine/RedefineSet/OccursDepending that it should prompt and say "If you proceed with deleting this then you will also be removing the FlagColumn/FlagColumnValue/OccursDependingOnColumn assignments for this column as well. Are you sure you want to continue?" and then let the user decide if they want to allow Lysine to delete the related FlagColumn, FlagColumnValue and/or OccursDependingOnColumn columns or if they want to stop and review the effects.
seeing these as “warning” instead of “info”:
[Amino Software - Lysine] Warning: ProcessOutputColumn::No matching set found for Redefine: Header
I found an issue in the Layout tab. I have a redefine set, and within the redefine set I want to add a new OccursDepending column. So I click the redefine set, then click the Add Column and click the OccursDepending it adds the new column at the end of the redefine set… when I click the ‘Move Current Node Up’ button it INSTANTLY crashes, without any error message. I have tried with and without having the ‘DependingOnColumn’ property set. Nothing I do seems to let me move it using the Move Up/Move Down buttons in the tool.
Allow for the extraction of a singular value into a variable. Much like with the "Execute SQL" task in SSIS where you can either have "multiple results" which is how the EBCDIC Source works today, or you can specify 'Single Row' which allows you to extract a single value or values into destination variables. This would be handy for situations where you are trying to extract information from a header or trailer. You don't need to be able to read all the data in the file and you don't need to have a sophisticate output setup, just read the file and allow the single row to be mapped to specific variables. Maybe this would be better implemented as a Control Flow component instead of Data Flow component because the output isn't going to a data destination, it's just going to an SSIS variable.
[SSIS.Pipeline] Warning: Warning: Could not open global shared memory to communicate with performance DLL; data flow performance counters are not available. To resolve, run this package as an administrator, or on the system's console.
basically a button that if you select an occurs you can tell it to just repeat the items N times to replace the occurs field.
Occurs 2 times
----- Regular column
would become :
Regular Column 1
Regular Column 2
Add a property to the OccursDepending column for MinOccurs and MaxOccurs. This would be used in more accurately calculating Offset values on the Layout tab. If MinOccurs is set, then the Offset calculation would base the offset values off of the minimum number of times that are specified for each of the OccursDepending Columns. If the MaxOccurs is set then the offset calculation would be based on the maximum number of times that are specified for each of the OccursDepending Columns. This will make the offset value more useful than always assuming that the OccursDepending doesn't occur at all.
Make it so that when you have an expired license you can still get to the 'License' tab in Lysine instead of having to remember where the special directory is with the license file.
When seeing copybooks like:
02 ENTRY_REF_NUMBER.
03 ENTRY_TYPE PIC X(1).
03 ENTRY_SYS_6.
04 ENTRY_SYS_4 PIC X(4).
04 ENTRY_SYS_2 PIC X(2).
03 ENTRY_DATE PIC X(2).
03 ENTRY_BOX_BATCH.
05 ENTRY_2 PIC X(2).
05 ENTRY_LAST_6 PIC X(6).
02 FILLER REDEFINES ENTRY_REF_NUMBER.
03 TYPE PIC X(1).
03 PREFIX_BIN.
04 FIRST_DIG PIC 9(1).
04 LAST_DIGS PIC 9(5).
03 RETRIEVAL_NUMBER.
04 DATE PIC X(2).
04 FILM_LOCATOR.
05 FILLER PIC X(3).
05 ENTRY_LAST_5 PIC X(5).
We are seeing parsings of:
<?xml version="1.0" ?>
<Definition>
<AminoSoftware.Ebcdic.Definition>
<Columns>
<AminoSoftware.Ebcdic.CopyBook.RedefineColumn ColumnID="ccef4cb1-0a3f-4a9a-8ca3-833b334bfaad" Name="ENTRY_REF_NUMBER">
<IndicatorColumns/>
<Definitions>
<AminoSoftware.Ebcdic.CopyBook.RedefineDefinitionSet Name="">
<Columns>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="5cb68c7d-14f1-42a3-919c-fc0eaeb18c4c" Length="1" Name="ENTRY_TYPE" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="f3693440-f5e2-4b3e-9ae9-a7c21a34862e" Length="4" Name="ENTRY_SYS_4" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="ead943e4-4d3e-4dcc-b7c3-3d61a7f1c052" Length="2" Name="ENTRY_SYS_2" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="410d0eff-7ce0-48db-b999-131fecd8f381" Length="2" Name="ENTRY_DATE" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="681aee61-58e9-4048-bc1d-04064bc7d1f9" Length="2" Name="ENTRY_2" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="9b6e1aa5-23d5-4bc7-842f-a6afbbab24d8" Length="6" Name="ENTRY_LAST_6" NumberOfDecimalPlaces="0"/>
</Columns>
<Values/>
</AminoSoftware.Ebcdic.CopyBook.RedefineDefinitionSet>
<AminoSoftware.Ebcdic.CopyBook.RedefineDefinitionSet Name="">
<Columns>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="36a5aa7e-412a-4c6e-904f-c77700a2820a" Length="1" Name="TYPE" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="1ceec1a8-749c-42ab-87d1-db219455966d" Length="1" Name="FIRST_DIG" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="a3778167-95c2-41fe-90bb-171c698891d2" Length="5" Name="LAST_DIGS" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="1b927e1d-d9e5-41d9-9a9f-6d7268bd8e46" Length="2" Name="DATE" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="6bde33f9-4ac7-4efd-85ab-45f3c8dc2b64" Length="3" Name="FILLER" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="6532003a-bf10-4c41-a2a4-8b09b49c10c1" Length="5" Name="ENTRY_LAST_5" NumberOfDecimalPlaces="0"/>
</Columns>
<Values/>
</AminoSoftware.Ebcdic.CopyBook.RedefineDefinitionSet>
</Definitions>
</AminoSoftware.Ebcdic.CopyBook.RedefineColumn>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="8c1eb38d-9b13-4334-ae85-a5ce7fc58d4e" Length="4" Name="ENTRY_SYS_4" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="9cec97e4-f372-4b90-a25e-60d819ef8386" Length="2" Name="ENTRY_SYS_2" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="e31639cc-0152-4bdc-b984-fd03f18e0e84" Length="2" Name="ENTRY_DATE" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="bdfc8d6e-4561-4d58-a9a3-e3ba47248a82" Length="2" Name="ENTRY_2" NumberOfDecimalPlaces="0"/>
<AminoSoftware.Ebcdic.CopyBook.RegularColumn ColumnID="116d993c-6bc4-4329-a323-e381ea3ba3a5" Length="6" Name="ENTRY_LAST_6" NumberOfDecimalPlaces="0"/>
</Columns>
</AminoSoftware.Ebcdic.Definition>
</Definition>
What we should see in that are values for the Name
attribute of RedefinitionSet
elements.
I'm pretty sure we are also no respecting the grouping appropriately given that some of the fields are defined twice.
17 BSC-AMT S9V99
17 235-FEE S9V99
these calculated as 3 bytes but are only 2 in fact
After the EBCDIC source generates its outputs if you add fields to the end of the layout the record number column is NOT at the end of the output which breaks existing logic.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.