IMPORTANT:
this is not a Support Forum! Experienced users might answer from time to time questions posted here. If you need a professional and reliable answer, or if you want to report a bug, please contact Altova Support instead.

Profile: that
About
User Name: that
Forum Rank: Advanced Member
Real Name:
Location AT
Occupation:
Interests:
Gender: None Specified
Statistics
Joined: Friday, June 16, 2006
Last Visit: Wednesday, September 1, 2021 4:44:10 PM
Number of Posts: 459
[2.58% of all post / 0.08 posts per day]
Avatar
Last 10 Posts
Topic: Extract only alphanumeric characters from string
Posted: Wednesday, September 1, 2021 4:38:52 PM
You can create a user-defined function with the following general structure:

input -> tokenize-by-length -> filter -> string-join -> result

Connect a constant 1 to the length input of tokenize-by-length, then it will output a sequence of individual characters.

In the filter you can now decide for each character if you want it, e.g. with equal-or-greater "A" etc., or with find-substring in "ABCDEF...".

The final string-join gathers all the characters that passed the filter and builds a single string from them.
Topic: 837I - HI/C022 . More then 12 it gives me error.
Posted: Wednesday, September 1, 2021 4:30:41 PM
sanjeevjani wrote:
How can I get the HI/C022 segment to repeat a second HI segment when there are more than 12 'other Diagnosis' (C022) items?


Connect your source to a group-into-blocks component, and from that to the HI segment. Map the constant 12 to block-size of group-into-blocks.
This will split your C022 instances into groups of 12 and create one HI segment for each group.
Topic: Remove a node in a sequence
Posted: Wednesday, August 25, 2021 10:52:42 AM
If you want to remove "de", use filter and not-equal components.
If you want to remove the first element, use skip-first-items.
Topic: [resolved] EDIFACT input to dynamic multiple FLAT output files
Posted: Tuesday, August 24, 2021 12:28:11 PM
Deadern wrote:
I want each of my UNB group to generate one output file with its own content only.


The issue here is the substitute-null component. Since it must be able to process an empty input, it does not bind the parents into the target context, so in this case there is no relation between the source "Interchange" and the content of your output file.

If you replace that component with a direct connection to your concat, it will automatically cause only related data to be written to your output file (but interchanges that don't have that field will not be processed at all).
Topic: Lazy documentation - string-compare
Posted: Thursday, July 29, 2021 5:38:46 PM
larrywmsn wrote:
I would imagine that almost everyone who uses the string-compare functions just wants a true or false for the match.


If you just want to know if two strings are equal, use the "equal" function from the core library.
Topic: Big excel output, 2 hours of compiling time per 100 sku's
Posted: Tuesday, July 20, 2021 4:06:07 PM
The best solution for such mappings is to put your lookup tables into a database (even SQLite will do) and use the SQL-WHERE component in the mapping to find the matching record(s).
Topic: Best Practices
Posted: Friday, July 16, 2021 9:03:58 AM
MapForce Server is more like a runtime that either integrates with FlowForce Server on the same machine, or that you can run via command line or various APIs. So in a typical setup you have one or more end users running MapForce on their PC, they deploy mappings to the FlowForce server, and FlowForce orchestrates execution of jobs that run these mappings on MapForce Server.

If you need to split the load to multiple machines due to high volume, FlowForce has the ability to control additional FlowForce instances on other machines as remote workers.
Topic: XML to Excel- variable number of columns
Posted: Wednesday, June 23, 2021 3:18:39 PM
Davy wrote:
Unfortunately, it seems like I have to define a column range in advance, and add the column header, but there is no way of conditionally adding the column to the excel output or not.


There is, if you keep the option "Show a single Cells item for all columns" selected. However you can't mix fixed columns with dynamic ones - it's all or nothing.

In the "Show a single Cells item for all columns" mode, you can map a sequence of data items to the Cells node, and MapForce will create one column for each item. You can do the same with a sequence of strings to create your column headers. You can use "variable" components and the "Duplicate Input" function for the variable's "value" node to prepare such sequences easily.
Topic: XLSX only searching for first match, not the rest?
Posted: Tuesday, June 15, 2021 5:29:03 PM
Ash wrote:
I've tried connecting 'Filter' in a couple of places, but I can't seem to get the right combo...


It's easy if you think in small steps:

The "A" output from your Excel table will return ALL numbers in your list.
You want to know if at least one value EXISTS in that list that is EQUAL to the value from your input file.

So you first FILTER the values from your Excel table, using the condition that it is EQUAL to the value from your input file.

The output of the filter will now contain all matching values - zero if there is no match, and - given that they are unique - at most one.
To decide whatever you want to do in your "if-else" components, you want to know if the filter result EXISTS.

So you connect the output of the filter to an "exists" function and the result of that function to your existing "if-else".
Topic: XLSX only searching for first match, not the rest?
Posted: Tuesday, June 15, 2021 2:07:14 PM
When you run the mapping, are you getting any warnings in the Messages window, like "value was overwritten"?

You may need to add "filter" and "exists" components (between "equal" and "if") so that you produce only one output value per input, not one per Cartesian product of input value and lookup rows.

Use of the Altova User Forum(s) is governed by the Altova Terms of Use.