TBS tiny but strong: how to recursively fill in data - recursion

I use openTBS to parse an invoice template. The invoice address is supplied via a custom function. I would like to conditionally more information to the filled in data.
I was thinking of permitting the invoice address (the filled in data) to contain another TBS field, e.g. for a person to speak to, and have TBS re-parse the form. In other words, can I make TBS parse a template twice if the first run supplies a new TBS field?
Example:
[abk.invoiceaddress]
--- is replaced with -->
ACME inc.
[abk.person]
Somestreet 123
Somecity 54321
--- should be replaced with -->
ACME inc.
Mr. Knowitall
Somestreet 123
Somecity 54321
There seems to be no option for recursive replacement and calling MergeField() twice does not have the desired effect.

By default, TBS prevents from TBS fields injection when merging data.
Otherwise it could be a security issue.
By default, if the data is:
ACME inc. [abk.person] Somestreet 123 Somecity 54321
then it will be merged as:
ACME inc. &#91abk.person] Somestreet 123 Somecity 54321
The string &#91 is the unicode for [, so this is not visible for lot of templates.
But you can lift this protection using parameter protect=no
See https://www.tinybutstrong.com/manual.php#html_field_prm_protect

Related

Suggestion for using profile with user inputs

Using Meteor, I like to get suggestion to use profiles with input variables defined in it.
When using it, I wanted to prompt all the input variables in the profile.
Finally I wanted to replace input variables with the customer inputs and generate a config file.
Same profile:
Section A:
City Name {{CityName}}
Name {{Name}}
Section B:
Device Ip {{deviceIP}}
Device Name {{deviceName}}
With User inputs, I wanted to generate the config file:
Section A:
City Name Dallas
Name Chris
Section B:
Device Ip 99.99.12.111
Device Name DAL_1

Retrieving only the first email of long email threads

I am new to R and I want to retrieve only the first email received from entire email threads. Each time an email is received in the inbox, a .csv file is created (i.e. I have many files of duplicated text, just differing by newest reply that is on the top of the .csv file)
I am not sure as to how I can provide my codes to help because right now, I don't have any idea how to even start on this segment of my data cleansing.
Is there a way for me to possibly group my .csv files based on the email thread they belong to, before extracting the most duplicated text (since the first email is likely to be present in all subsequent files) to be used in my corpus for topic mining?
Or does anyone have a better way to approach this? I have considered using the threads function in tm.plugin.mail but since these are plain texts, it only returns with a depth of 1 for every email.
EDIT:
The title of the files are just random strings of alphanumerals, and I only have a metadata containing the name of the sender, the date sent (no time provided), and the title of the file that it corresponds to. Here is an idea of what my data looks like:
From: xxx#gmail.com
To: yyy#gmail.com
Subject: Re: xxx
Dear Sir,
(main content)
Yours Sincerely,
xxx
From: yyy#gmail.com
To: xxx#gmail.com
Subject: xxx
Dear Sir,
(main content)
Regards,
yyy
Generally, this is how the .csv file will look like (except that with each comma, there is a new line break as per .csv files), so it is actually quite messy. There is no one fixed way that the email is being formatted, so I had a failed attempt in using regex to remove everything before the last instance of "From:". Some of the emails come in another format:
On (date), (time), (name) <email address> wrote:

How to generate 837 DAT file with ICD10 code in Biztalk?

My 'BizTalk' application 'convert' txt file to 'DAT(EDI 837 005010X222A1)' file format.
'Now change is Need to generate DAT file with ICD10 code'
Question are
How I generate DAT with like 'HI*ABK'? right now in Combined837Doc.map, 'BK' is hardcoded
Should I change 'X12_00501_837_P.xsd'?
How BizTalk decide ABK | ABF | ABN | ABJ HI qualifier based on passed ICD code?
BK ---> Primary Diagnosis code -->ABK
BF ---> Secondary Diagnosis code -->ABF
BN ---> External Cause of injury -->ABN
BJ ---> Admitting Diagnosis -->ABJ
PR ---> Patient Reason for Visit -->APR
BR ---> Primary Procedure code -->BBR
BQ ---> Secondary Procedure code -->BBQ
BizTalk will not handle this in any sort of automatic way. The 837 XSDs will give you clues about what qualifiers are valid for a particular field, but they do not get set on those fields unless you set them in the map - either in the Value property of the destination node or via the output of a link (from a source node or functoid). You should not modify the XSD unless you need to support a non-standard qualifier that you and your trading partner have agreed to use - but you should stick to the standard qualifiers and encourage/require your partners to do so as well to avoid the need of such customization, and if you do make such modifications it should be to a trading partner version of the schema that gets properly mapped to a canonical format that does use the standard codes.
To further clarify, if you need to set the primary diagnosis code to BK and set other diagnostic codes to ABK, you have to provide that output from the map. You also have to ensure that you link to the proper HI node - only the first HI node for the Primary Diagnosis will accept BK as the qualifier (per WPC standards); subsequent ones can have ABK. I've written a couple blogs on this topic here and here.
What you really need here is to review the WPC specification for the Professional Claim v. 5010 and your trading partner's companion guide for the claim. These will provide all of this information so you can do your mapping correctly. You will also very likely need to work with an EDI claims specialist to get this right - HIPAA transactions are particularly challenging, and the claim forms are probably the most complicated of them.

Netsuite - Saved Search - String All True Results of Case Formula

Hoping someone can help me out with a NetSuite question, and I apologize in advance if i’m misusing some lingo.
I am creating a item based saved search and one of my formula (text) result fields can have multiple true values when I apply my case formula. I’m look to combine all the true results of this formula into one comma separated string, instead of a new item row for each true value.
sku contact type
123 John S Owner
123 Jane S Clerk
123 Jack S Clerk
Formula (text) - Custom Label Field Name = Contact Name
Case when {type} = ‘Clerk’ then {contact} end
Currently my results generate a item (sku) row for each case of clerk:
Sku Contact Name
123 Jane S
123 Jack S
I’m looking for my results to be a single string
Sku Contact Name
123 Jane S, Jack S
I know the case function noted above will not string the results by itself; I originally intended to use the group by and max summary types, but I only get one Contact Name result.
Any solutions or work arounds?
Thanks
There are certain grouping functionality available for saved search results, but I don't think what you are trying to do is possible.
If you group your results by Sku, you will get one line per Sku but concenating the contact names from different line results I don't think is possible.
In your SaveSearch's Filter look for mainline and try to set either true(Yes) Or false(No).
There is an undocumented Netsuite function NS_CONCAT() (similar to Oracle's undocumented WM_CONCAT()) that does exactly this. You would group your results by the SKU column, and add formula field with the formula NS_CONCAT({contact}) and the summary type set to Minimum or Maximum.
According to some Netsuite employees on the Netsuite User Group, the LISTAGG function should also work now, and offers more flexibility (if you wanted a delimiter other than a comma for example).

BizTalk - Generating schema for carriage return delimited flat file

I am trying to generate schema for a flat file the content of which are separated by carriage returns. Please see a sample of the data from the import file below:
12042012
TDF
XYZ Industries Limited
X9090-78900
-
3.4
-
NA
-
-
-
-
-
All telephone calls routed to a different no.
tomorrow is critical. To have the
documents ready for inspection.
12042012
TDF
XYZ Industries Limited
X9090-78900
-
.6
-
NA
-
-
-
-
-
Further prep re hearing/how inital costs
estimate reached/emails to update XYZ,
collation of docs fro tomorrow. 1735 - 1815
(-1).
In the sample above there are two records. Each record is separated by a carrige return. In turn each field in the record is also separated by carriage return. This is all fine but when it comes to the last field in the record, which is the "Description" field, you will see that there are carriage returns within the text (as they are entered by the user in the source system).
Here in lies the challenge for me, I haven't been able to successfully generate a schema using the Flat File Schema wizard available in BizTalk Server 2010 such that the "Description" field comes out as a single record. Because when I put Line Carriage delimiter it always treats the Description lines as separate records. When I go to validate the schema it always fails. Could somebody point me in the right direction as to what I might be doing wrong here.
Do you have any control over the source system? If so, you can set an escape character on the record. Assuming the use of a backslash for an escape character, the description field would then contain:
All telephone calls routed to a different no.\
tomorrow is critical. To have the\
documents ready for inspection.\

Resources