Reverse lookup table scaling.
Ok so I have a sensor that is polynomial THEN linear.
I have a 25pt lookup table for the calibration in MAX.
I have a data file that is the result of scaling the raw voltages into real units after going thru the lookup table.
Now I realize the lookup table is incorrect.
I need to back the lookup table out of the data to bring me back to volts.
Is there a semi easy way to do this in LV?
I have the data file and the lookup table attached.
MF100 units are correct in LB/Min.
The column "Granetelli" is the result of the lookup table.
I need to back out the calibration from the data, put the data into volts, and then figure out a new lookup table that makes those unscaled volts scale to the values that are listed in the MF100 column.
Advice?
Attachments:
MF100 vs Granetelli Maf (NEW).xls 35 KB
vDC_MASS FLOW.txt 1 KB
Vr6Fidelity,
Can you post a screen shot of your code so we can have a better idea of what you are doing. I believe what you should try is a simple Analog Input Voltage aquire to get your raw voltage data, but I would like to make sure.
Mark
LabVIEW R&D
Similar Messages
-
Searching Records Following the Creation of a Lookup Table
Hello,
Please excuse my ignorance but I have just created a lookup table by using the wizard in SQL Workshop. All is well text has been replaced by numbers. My issue is that when I do a search now using a drop down list based on a query it returns records based on other numbers as well. That is if '2' relates to an item the search picks up anything containing a 2: 2,21,22, etc. How can I get the query to return a value for the number selected and not anything containing that number?
and (
instr(upper("MODEL_ID"),upper(nvl(:P40_REPORT_SEARCH,"MODEL_ID"))) > 0
Kind Regards,
Swelch
Edited by: Steve Welch on Mar 9, 2012 12:03 PMHere are two potential solutions
and (instr(upper('~'||"MODEL_ID"||'~'),upper(nvl('~'||:P40_REPORT_SEARCH||'~',"MODEL_ID"))) > 0)or
AND model_id = NVL(:P40_REPORT_SEARCH, model_id)The first is often used for components such as shuttles. I think I've added the special characters in the right place - not tested/verified against my previous example
The second may be more appropriate to your scenario, depending on your data.
Scott -
Remove Old Name Servers from reverse lookup zones in DNS- PowerShell
Hello Scripting Guys,
I'm a long-time fan. Please let me know if I have included enough information for you to provide some guidance. Thank
you!
Here is what I am attempting to do:
import a .csv file which contains
zoneName,hostname,RecordType
and then delete the name server entries from the reverse lookup zones.
Why:
There are hundreds of zones and 80+ name servers in each for a total of about 25,000 records to be removed. I
have the list of zones and the list of name servers which I want to remove from the zones.
Environment:
I am running PowerShell as a Domain Admin with access to DNS. Zones allow secure updates only (if that matters here).
I am running it from a Server 2012 R2 server with the DNS admin tools installed against Server 2008 R2 DNS servers. Current AD functional level Windows Server 2003. All DC are DNS server and GC's.
What I have tried:
The following
works to return all the Name Server records in a zone:
.csv file format
zoneName,hostname,RecordType
1.112.170.in-addr.arpa,nameserver1.contoso.com.,Ns
1.112.170.in-addr.arpa,nameserver2.contoso.com.,Ns
1.112.170.in-addr.arpa,nameserver3.contoso.com.,Ns
2.112.170.in-addr.arpa,nameserver1.contoso.com.,Ns
2.112.170.in-addr.arpa,nameserver2.contoso.com.,Ns
2.112.170.in-addr.arpa,nameserver3.contoso.com.,Ns
Script\Command:
Import-Module DnsServer
$PDCE = Get-ADDomainController -Discover -Service PrimaryDC
import-csv c:\temp\OldNSrecords-test.csv | foreach {
Get-DnsServerResourceRecord -ZoneName $_.zoneName -RRType "Ns" -computerName $PDCE
-Node
OutPut to screen:
HostName RecordType Timestamp TimeToLive RecordData
@ NS 0 1:00:00 Nameserver1.contoso.com
@ NS 0 1:00:00 Nameserver2.contoso.com
However, replacing the business line (in green above after foreach) with the remove command (in red below)
does not work to delete the specific record listed in the .csv, even though it follows the
pattern from MS TechNet:
Remove-DnsServerResourceRecord -ZoneName $_.zoneName -RRType "Ns" -name $_.hostname -computerName
$PDCE
Error:
PS C:\Windows\system32> C:\Temp\OldNSCleanup.ps1
Remove-DnsServerResourceRecord : Failed to get nameserver1.contoso.com. record in
1.112.170.in-addr.arpa zone on PDCE server.
At C:\Temp\OldNSCleanup.ps1:4 char:1
+ Remove-DnsServerResourceRecord -ZoneName $_.zoneName -RRType "Ns" -name $_.name ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (PDCE:root/Microsoft/...rResourceRecord) [Remove-
DnsServerResourceRecord], CimException
+ FullyQualifiedErrorId : WIN32 9714,Remove-DnsServerResourceRecord
When I remove the use of the .csv and put the names of the zone and server in the command, I get the same results.
Fail.
It's as if the record does not exist, but I can browse to it in the GUI. I found
this about Missing Glue records, but it does not seem to apply to reverse lookup NS records. I'm thinking that I need to first load each zone into an assembly and then do the removal,
but I'm not sure how to do that in PowerShell. I tried piping the get command for the zone to the remove command, but that did not work or I did not have the correct syntax.
I have attempted to use DNSCMD to do the same and that command appears to work, but then fails to actually remove
the record.
Here is an example of that command:
import-csv C:\Temp\OldNSrecords-test.csv | foreach {dnscmd.exe "DNSServer.contoso.com" /Recorddelete $_.ZoneName
$_.hostname $_.recordType /f}
Output:
Deleted Ns record(s) at 1.112.170.in-addr.arpa
Command completed successfully. [But not really, the NS record is still there]
I have researched several sites including the suggest one here, but this does not fit my requirement.
http://social.technet.microsoft.com/Forums/scriptcenter/en-US/97070ff2-59e2-4f34-9c39-054048e008af/automatically-delete-removed-dcname-servers-and-automatically-add-new-dcname-servers-in-reverse?forum=winserverDS
http://technet.microsoft.com/en-us/library/jj649872.aspxHere is a backing store for the root servers in the DNS format:
; formerly NS.INTERNIC.NET
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
; formerly NS1.ISI.EDU
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
; formerly C.PSI.NET
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
; formerly TERP.UMD.EDU
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
; formerly NS.NASA.GOV
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
; formerly NS.ISC.ORG
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
; formerly NS.NIC.DDN.MIL
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
; formerly AOS.ARL.ARMY.MIL
. 3600000 NS H.ROOT-SERVERS.NE
Notice that each is a pair.
One is the NS and the secon is the A record.
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
In this case the dot represents the self reference to the A record. These are the records that bootstrap all of the Internet. Remove them and you ae lost.
The CSV uses the @ to anchor the local domain. Perhaps the DNS CmdLets prefer the dot. The @ is what appears on the screen when we use the GUI. Note the dot at the end of the FQDN. It is required. Even browser use
it but they add it if you forget.
¯\_(ツ)_/¯ -
I want to create a custom enterprise project field and would like to use instead of for example a text attribute or a look-up table a field for employees (e.g. project manager) which are coming e.g. from the Active Directory. But when creating this custom
project field I cannot see such an option. What solution do you suggest as I want to avoid that everybody uses different names and spellings for e.g. the project manager and without having to fill the lookup table with all resources of the company.
Thank you so much for your help!Hi,
Are you using Proejct Server 2007, 2010, 2013?
In case you're working with 2010 version, here is an excellent
blog about how to insert a resource picker in a PDP (project detail page).
Hope this helps,
Guillaume Rouyre, MBA, MVP, P-Seller | -
How to do a reverse lookup on a value set?
I have a concurrent program which has multiple paramaters with various value sets. When I run reports, I want to dynamically list on the output the parameters the user gave. The problem is that these values are often the IDs and not the value the user sees.
Are there any packages in applications that will let me to do a "reverse lookup" with the value sets to get the values the user saw?
Thanks,
Kurzweil4Hi Stomie,
Based on your description, the network ID of your reverse lookup zone is 172.16.160.
To create a reverse lookup zone, please follow steps below,
Right click Reverse Lookup Zones, click New Zone, choose proper settings of
Zone Type, Active Directory one Replication Scope,
Reverse Lookup Zone Name type based on your actual situation.
In the Reverse Lookup Zone Name page, check Network ID
radio button, enter the network ID. For example, if the network ID is 172.16.160, then enter 172, 16, 160 in order. Then you will see it appears
160.16.172.in-addr.arpa in the Reverse lookup zone name edit.
Or in the Reverse Lookup Zone Name page, check
Reverse lookup zone name radio button, then enter the name of the reverse lookup zone directly. Such as, enter
160.16.172.in-addr.arpa in the edit.
Click Next twice, click Finish.
Reverse lookup zone name end up with in-addr.arpa.
Best Regards,
Tina -
Hey folks, looking for some insight here.
I've an implementation that contains some custom Enterprise columns mapped to lookup tables. In the instance I'm working with now, it looks like there was/is an issue with one of those columns. In this scenario, I have a column named
ProjectType, created initially with that name, mapped to a lookup table. This field's name was then changed to
Project Type. After that, it looks like another column was created, also called
ProjectType. So now, we have what I would have originally thought was two distinct columns, even though the names used are the same.
Below is the error we're currently getting during the Cube Build Process...
PWA:http://ps2010/PWA, ServiceApp:Project Web App, User:DOMAIN\user, PSI: SqlException occurred in DAL: <Error><Class>1</Class><LineNumber>1</LineNumber><Number>4506</Number><Procedure>MSP_EpmProject_OlapView_B8546719-4D4C-473A-84B1-89DEDA2307E0</Procedure>
<Message> System.Data.SqlClient.SqlError: Column names in each view or function must be unique. Column name 'ProjectType' in view or function 'MSP_EpmProject_OlapView_B8546719-4D4C-473A-84B1-89DEDA2307E0' is specified more than once. </Message>
<CallStack>
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at Microsoft.Office.Project.Server.DataAccessLayer.DAL.SubDal.ExecuteStoredProcedureNoResult(String storedProcedureName, SqlParameter[] parameters) </CallStack> </Error>
I've tried deleting the one column, but the build still gives the above error.
Any thoughts as to how the above could be resolved?
Thanks! - M
Michael Mukalian | Jan 2010 - Dec 2010 MVP SharePoint Services | MCTS: MOSS 2007 Configuration | http://www.mukalian.com/blogWe tried taking it out of the cubes, and it builds fine. The challenge we're having is in building the cubes with that custom field "ProjectType". It's as if the cubes still hold some reference to it even when it's deleted.
Since the OLAP View ('MSP_EpmProject_OlapView_{guid}') is recreated, would it be as simple as deleting that View, and trying to recreate?
Thanks - M
Michael Mukalian | Jan 2010 - Dec 2010 MVP SharePoint Services | MCTS: MOSS 2007 Configuration | http://www.mukalian.com/blog -
One sequence for multiple lookup tables?
I am sorry if this is off-topic, however can anybody advise what is better - use one sequence for all tables (lookup tables) or to create unique sequence for each table?
Thanks
DanielDDaniel,
After you read this (http://asktom.oracle.com/pls/ask/f?p=4950:8:::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:2985886242221,), you may be sorry you asked.
Scott -
Distortion Correction with Lookup Table
Hello,
I am trying to run an image through lookup tables in order to correct some distortion.
I have two 2D lookup tables "LUTsXnew.raw" and "LUTsYnew.raw" which locate the new (x,y) coordinates that i want to move the pixel intensities from original image "writing_final_D.raw" into the corrected image.
However, Labview takes too much time (12 seconds), if you have some experience with arrays and images can you please have a look at my code and tell me what i am doing wrong?
I am running the same algorithm in C on the same pc and it takes less than 1second.
Thanks,
CK
PS: I am attaching the VI plus the required raw images
Please ignore the resulting image, i just care about speed for the moment
Attachments:
images1.zip 287 KB
distortion correction_set pixel1.vi 81 KBCK,
I cannot run your VI because Vision is not supported on my platform. So my comments are general rather than specific.
1. Your while loops can be replaced with for loops because you know the number of iterations in advance.
2. If you transpose the arrays before entering the loops, you can use autoindexing rather than using Index array in the inner loop.
3. If you only update the inner and outer iteration count indicators every 100 iterations you will not have displays that are meaningless to the user using up processor time. Eliminate them completely for the fastest performance.
4. Avoid coercion inside the loops. The IMAQ Set Pixel Value function has coercion dots on three inputs. Doing explicit conversions outside the loops may be faster.
5. The Tick Count functions should be in frames of their own to assure accurate timing.
6. Local variables are not needed and are generally slower than wires.
Lynn
Attachments:
distortion correction_set pixel1.2.vi 69 KB -
Creating a single context index on a one-to-many and lookup table
Hello,
I've been successfully setting up text indexes on multiple columns on the same table (using MULTI_COLUMN_DATASTORE preferences), but now I have a situation with a one-to-many data collection table (with a FK to a lookup table), and I need to search columns across both of these tables. Sample code below, more of my chattering after the code block:
CREATE TABLE SUBMISSION
( SUBMISSION_ID NUMBER(10) NOT NULL,
SUBMISSION_NAME VARCHAR2(100) NOT NULL
CREATE TABLE ADVISOR_TYPE
( ADVISOR_TYPE_ID NUMBER(10) NOT NULL,
ADVISOR_TYPE_NAME VARCHAR2(50) NOT NULL
CREATE TABLE SUBMISSION_ADVISORS
( SUBMISSION_ADVISORS_ID NUMBER(10) NOT NULL,
SUBMISSION_ID NUMBER(10) NOT NULL,
ADVISOR_TYPE_ID NUMBER(10) NOT NULL,
FIRST_NAME VARCHAR(50) NULL,
LAST_NAME VARCHAR(50) NULL,
SUFFIX VARCHAR(20) NULL
INSERT INTO SUBMISSION (SUBMISSION_ID, SUBMISSION_NAME) VALUES (1, 'Some Research Paper');
INSERT INTO SUBMISSION (SUBMISSION_ID, SUBMISSION_NAME) VALUES (2, 'Thesis on 17th Century Weather Patterns');
INSERT INTO SUBMISSION (SUBMISSION_ID, SUBMISSION_NAME) VALUES (3, 'Statistical Analysis on Sunny Days in March');
INSERT INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME) VALUES (1, 'Department Chair');
INSERT INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME) VALUES (2, 'Department Co-Chair');
INSERT INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME) VALUES (3, 'Professor');
INSERT INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME) VALUES (4, 'Associate Professor');
INSERT INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME) VALUES (5, 'Scientist');
INSERT INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX) VALUES (1,1,2,'John', 'Doe', 'PhD');
INSERT INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX) VALUES (2,1,2,'Jane', 'Doe', 'PhD');
INSERT INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX) VALUES (3,2,3,'Johan', 'Smith', NULL);
INSERT INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX) VALUES (4,2,4,'Magnus', 'Jackson', 'MS');
INSERT INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX) VALUES (5,3,5,'Williard', 'Forsberg', 'AMS');
COMMIT;I want to be able to create a text index to lump these fields together:
SUBMISSION_ADVISORS.FIRST_NAME
SUBMISSION_ADVISORS.LAST_NAME
SUBMISSION_ADVISORS.SUFFIX
ADVISOR_TYPE.ADVISOR_TYPE_NAME
I've looked at DETAIL_DATASTORE and USER_DATASTORE, but the examples in Oracle Docs for DETAIL_DATASTORE leave me a little bit perplexed. It seems like this should be pretty straightforward.
Ideally, I'm trying to avoid creating new columns, and keeping the trigger adjustments to a minimum. But I'm open to any and all suggestions. Thanks for for your time and thoughts.
-JamieI would create a procedure that creates a virtual document with tags, which is what the multi_column_datatstore does behind the scenes. Then I would use that procedure in a user_datastore, so the result is the same for multiple tables as what a multi_column_datastore does for one table. I would also use either auto_section_group or some other type of section group, so that you can search using WITHIN as with the multi_column_datastore. Please see the demonstration below.
SCOTT@orcl_11gR2> -- tables and data that you provided:
SCOTT@orcl_11gR2> CREATE TABLE SUBMISSION
2 ( SUBMISSION_ID NUMBER(10) NOT NULL,
3 SUBMISSION_NAME VARCHAR2(100) NOT NULL
4 )
5 /
Table created.
SCOTT@orcl_11gR2> CREATE TABLE ADVISOR_TYPE
2 ( ADVISOR_TYPE_ID NUMBER(10) NOT NULL,
3 ADVISOR_TYPE_NAME VARCHAR2(50) NOT NULL
4 )
5 /
Table created.
SCOTT@orcl_11gR2> CREATE TABLE SUBMISSION_ADVISORS
2 ( SUBMISSION_ADVISORS_ID NUMBER(10) NOT NULL,
3 SUBMISSION_ID NUMBER(10) NOT NULL,
4 ADVISOR_TYPE_ID NUMBER(10) NOT NULL,
5 FIRST_NAME VARCHAR(50) NULL,
6 LAST_NAME VARCHAR(50) NULL,
7 SUFFIX VARCHAR(20) NULL
8 )
9 /
Table created.
SCOTT@orcl_11gR2> INSERT ALL
2 INTO SUBMISSION (SUBMISSION_ID, SUBMISSION_NAME)
3 VALUES (1, 'Some Research Paper')
4 INTO SUBMISSION (SUBMISSION_ID, SUBMISSION_NAME)
5 VALUES (2, 'Thesis on 17th Century Weather Patterns')
6 INTO SUBMISSION (SUBMISSION_ID, SUBMISSION_NAME)
7 VALUES (3, 'Statistical Analysis on Sunny Days in March')
8 SELECT * FROM DUAL
9 /
3 rows created.
SCOTT@orcl_11gR2> INSERT ALL
2 INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME)
3 VALUES (1, 'Department Chair')
4 INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME)
5 VALUES (2, 'Department Co-Chair')
6 INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME)
7 VALUES (3, 'Professor')
8 INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME)
9 VALUES (4, 'Associate Professor')
10 INTO ADVISOR_TYPE (ADVISOR_TYPE_ID, ADVISOR_TYPE_NAME)
11 VALUES (5, 'Scientist')
12 SELECT * FROM DUAL
13 /
5 rows created.
SCOTT@orcl_11gR2> INSERT ALL
2 INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX)
3 VALUES (1,1,2,'John', 'Doe', 'PhD')
4 INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX)
5 VALUES (2,1,2,'Jane', 'Doe', 'PhD')
6 INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX)
7 VALUES (3,2,3,'Johan', 'Smith', NULL)
8 INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX)
9 VALUES (4,2,4,'Magnus', 'Jackson', 'MS')
10 INTO SUBMISSION_ADVISORS (SUBMISSION_ADVISORS_ID, SUBMISSION_ID, ADVISOR_TYPE_ID, FIRST_NAME, LAST_NAME, SUFFIX)
11 VALUES (5,3,5,'Williard', 'Forsberg', 'AMS')
12 SELECT * FROM DUAL
13 /
5 rows created.
SCOTT@orcl_11gR2> -- constraints presumed based on your description:
SCOTT@orcl_11gR2> ALTER TABLE submission ADD CONSTRAINT submission_id_pk
2 PRIMARY KEY (submission_id)
3 /
Table altered.
SCOTT@orcl_11gR2> ALTER TABLE advisor_type ADD CONSTRAINT advisor_type_id_pk
2 PRIMARY KEY (advisor_type_id)
3 /
Table altered.
SCOTT@orcl_11gR2> ALTER TABLE submission_advisors ADD CONSTRAINT submission_advisors_id_pk
2 PRIMARY KEY (submission_advisors_id)
3 /
Table altered.
SCOTT@orcl_11gR2> ALTER TABLE submission_advisors ADD CONSTRAINT submission_id_fk
2 FOREIGN KEY (submission_id) REFERENCES submission (submission_id)
3 /
Table altered.
SCOTT@orcl_11gR2> ALTER TABLE submission_advisors ADD CONSTRAINT advisor_type_id_fk
2 FOREIGN KEY (advisor_type_id) REFERENCES advisor_type (advisor_type_id)
3 /
Table altered.
SCOTT@orcl_11gR2> -- resulting data:
SCOTT@orcl_11gR2> COLUMN submission_name FORMAT A45
SCOTT@orcl_11gR2> COLUMN advisor FORMAT A40
SCOTT@orcl_11gR2> SELECT s.submission_name,
2 a.advisor_type_name || ' ' ||
3 sa.first_name || ' ' ||
4 sa.last_name || ' ' ||
5 sa.suffix AS advisor
6 FROM submission_advisors sa,
7 submission s,
8 advisor_type a
9 WHERE sa.advisor_type_id = a.advisor_type_id
10 AND sa.submission_id = s.submission_id
11 /
SUBMISSION_NAME ADVISOR
Some Research Paper Department Co-Chair John Doe PhD
Some Research Paper Department Co-Chair Jane Doe PhD
Thesis on 17th Century Weather Patterns Professor Johan Smith
Thesis on 17th Century Weather Patterns Associate Professor Magnus Jackson MS
Statistical Analysis on Sunny Days in March Scientist Williard Forsberg AMS
5 rows selected.
SCOTT@orcl_11gR2> -- procedure to create virtual documents:
SCOTT@orcl_11gR2> CREATE OR REPLACE PROCEDURE submission_advisors_proc
2 (p_rowid IN ROWID,
3 p_clob IN OUT NOCOPY CLOB)
4 AS
5 BEGIN
6 FOR r1 IN
7 (SELECT *
8 FROM submission_advisors
9 WHERE ROWID = p_rowid)
10 LOOP
11 IF r1.first_name IS NOT NULL THEN
12 DBMS_LOB.WRITEAPPEND (p_clob, 12, '<first_name>');
13 DBMS_LOB.WRITEAPPEND (p_clob, LENGTH (r1.first_name), r1.first_name);
14 DBMS_LOB.WRITEAPPEND (p_clob, 13, '</first_name>');
15 END IF;
16 IF r1.last_name IS NOT NULL THEN
17 DBMS_LOB.WRITEAPPEND (p_clob, 11, '<last_name>');
18 DBMS_LOB.WRITEAPPEND (p_clob, LENGTH (r1.last_name), r1.last_name);
19 DBMS_LOB.WRITEAPPEND (p_clob, 12, '</last_name>');
20 END IF;
21 IF r1.suffix IS NOT NULL THEN
22 DBMS_LOB.WRITEAPPEND (p_clob, 8, '<suffix>');
23 DBMS_LOB.WRITEAPPEND (p_clob, LENGTH (r1.suffix), r1.suffix);
24 DBMS_LOB.WRITEAPPEND (p_clob, 9, '</suffix>');
25 END IF;
26 FOR r2 IN
27 (SELECT *
28 FROM submission
29 WHERE submission_id = r1.submission_id)
30 LOOP
31 DBMS_LOB.WRITEAPPEND (p_clob, 17, '<submission_name>');
32 DBMS_LOB.WRITEAPPEND (p_clob, LENGTH (r2.submission_name), r2.submission_name);
33 DBMS_LOB.WRITEAPPEND (p_clob, 18, '</submission_name>');
34 END LOOP;
35 FOR r3 IN
36 (SELECT *
37 FROM advisor_type
38 WHERE advisor_type_id = r1.advisor_type_id)
39 LOOP
40 DBMS_LOB.WRITEAPPEND (p_clob, 19, '<advisor_type_name>');
41 DBMS_LOB.WRITEAPPEND (p_clob, LENGTH (r3.advisor_type_name), r3.advisor_type_name);
42 DBMS_LOB.WRITEAPPEND (p_clob, 20, '</advisor_type_name>');
43 END LOOP;
44 END LOOP;
45 END submission_advisors_proc;
46 /
Procedure created.
SCOTT@orcl_11gR2> SHOW ERRORS
No errors.
SCOTT@orcl_11gR2> -- examples of virtual documents that procedure creates:
SCOTT@orcl_11gR2> DECLARE
2 v_clob CLOB := EMPTY_CLOB();
3 BEGIN
4 FOR r IN
5 (SELECT ROWID rid FROM submission_advisors)
6 LOOP
7 DBMS_LOB.CREATETEMPORARY (v_clob, TRUE);
8 submission_advisors_proc (r.rid, v_clob);
9 DBMS_OUTPUT.PUT_LINE (v_clob);
10 DBMS_LOB.FREETEMPORARY (v_clob);
11 END LOOP;
12 END;
13 /
<first_name>John</first_name><last_name>Doe</last_name><suffix>PhD</suffix><submission_name>Some
Research Paper</submission_name><advisor_type_name>Department Co-Chair</advisor_type_name>
<first_name>Jane</first_name><last_name>Doe</last_name><suffix>PhD</suffix><submission_name>Some
Research Paper</submission_name><advisor_type_name>Department Co-Chair</advisor_type_name>
<first_name>Johan</first_name><last_name>Smith</last_name><submission_name>Thesis on 17th Century
Weather Patterns</submission_name><advisor_type_name>Professor</advisor_type_name>
<first_name>Magnus</first_name><last_name>Jackson</last_name><suffix>MS</suffix><submission_name>The
sis on 17th Century Weather Patterns</submission_name><advisor_type_name>Associate
Professor</advisor_type_name>
<first_name>Williard</first_name><last_name>Forsberg</last_name><suffix>AMS</suffix><submission_name
Statistical Analysis on Sunny Days inMarch</submission_name><advisor_type_name>Scientist</advisor_type_name>
PL/SQL procedure successfully completed.
SCOTT@orcl_11gR2> -- user_datastore that uses procedure:
SCOTT@orcl_11gR2> BEGIN
2 CTX_DDL.CREATE_PREFERENCE ('sa_datastore', 'USER_DATASTORE');
3 CTX_DDL.SET_ATTRIBUTE ('sa_datastore', 'PROCEDURE', 'submission_advisors_proc');
4 END;
5 /
PL/SQL procedure successfully completed.
SCOTT@orcl_11gR2> -- index (on optional extra column) that uses user_datastore and section group:
SCOTT@orcl_11gR2> ALTER TABLE submission_advisors ADD (any_column VARCHAR2(1))
2 /
Table altered.
SCOTT@orcl_11gR2> CREATE INDEX submission_advisors_idx
2 ON submission_advisors (any_column)
3 INDEXTYPE IS CTXSYS.CONTEXT
4 PARAMETERS
5 ('DATASTORE sa_datastore
6 SECTION GROUP CTXSYS.AUTO_SECTION_GROUP')
7 /
Index created.
SCOTT@orcl_11gR2> -- what is tokenized, indexed, and searchable:
SCOTT@orcl_11gR2> SELECT token_text FROM dr$submission_advisors_idx$i
2 /
TOKEN_TEXT
17TH
ADVISOR_TYPE_NAME
AMS
ANALYSIS
ASSOCIATE
CENTURY
CHAIR
CO
DAYS
DEPARTMENT
DOE
FIRST_NAME
FORSBERG
JACKSON
JANE
JOHAN
JOHN
LAST_NAME
MAGNUS
MARCH
PAPER
PATTERNS
PHD
PROFESSOR
RESEARCH
SCIENTIST
SMITH
STATISTICAL
SUBMISSION_NAME
SUFFIX
SUNNY
THESIS
WEATHER
WILLIARD
34 rows selected.
SCOTT@orcl_11gR2> -- sample searches across all data:
SCOTT@orcl_11gR2> VARIABLE search_string VARCHAR2(100)
SCOTT@orcl_11gR2> EXEC :search_string := 'professor'
PL/SQL procedure successfully completed.
SCOTT@orcl_11gR2> SELECT s.submission_name,
2 a.advisor_type_name || ' ' ||
3 sa.first_name || ' ' ||
4 sa.last_name || ' ' ||
5 sa.suffix AS advisor
6 FROM submission_advisors sa,
7 submission s,
8 advisor_type a
9 WHERE CONTAINS (sa.any_column, :search_string) > 0
10 AND sa.advisor_type_id = a.advisor_type_id
11 AND sa.submission_id = s.submission_id
12 /
SUBMISSION_NAME ADVISOR
Thesis on 17th Century Weather Patterns Professor Johan Smith
Thesis on 17th Century Weather Patterns Associate Professor Magnus Jackson MS
2 rows selected.
SCOTT@orcl_11gR2> EXEC :search_string := 'doe'
PL/SQL procedure successfully completed.
SCOTT@orcl_11gR2> /
SUBMISSION_NAME ADVISOR
Some Research Paper Department Co-Chair John Doe PhD
Some Research Paper Department Co-Chair Jane Doe PhD
2 rows selected.
SCOTT@orcl_11gR2> EXEC :search_string := 'paper'
PL/SQL procedure successfully completed.
SCOTT@orcl_11gR2> /
SUBMISSION_NAME ADVISOR
Some Research Paper Department Co-Chair John Doe PhD
Some Research Paper Department Co-Chair Jane Doe PhD
2 rows selected.
SCOTT@orcl_11gR2> -- sample searches within specific columns:
SCOTT@orcl_11gR2> EXEC :search_string := 'chair'
PL/SQL procedure successfully completed.
SCOTT@orcl_11gR2> SELECT s.submission_name,
2 a.advisor_type_name || ' ' ||
3 sa.first_name || ' ' ||
4 sa.last_name || ' ' ||
5 sa.suffix AS advisor
6 FROM submission_advisors sa,
7 submission s,
8 advisor_type a
9 WHERE CONTAINS (sa.any_column, :search_string || ' WITHIN advisor_type_name') > 0
10 AND sa.advisor_type_id = a.advisor_type_id
11 AND sa.submission_id = s.submission_id
12 /
SUBMISSION_NAME ADVISOR
Some Research Paper Department Co-Chair John Doe PhD
Some Research Paper Department Co-Chair Jane Doe PhD
2 rows selected.
SCOTT@orcl_11gR2> EXEC :search_string := 'phd'
PL/SQL procedure successfully completed.
SCOTT@orcl_11gR2> SELECT s.submission_name,
2 a.advisor_type_name || ' ' ||
3 sa.first_name || ' ' ||
4 sa.last_name || ' ' ||
5 sa.suffix AS advisor
6 FROM submission_advisors sa,
7 submission s,
8 advisor_type a
9 WHERE CONTAINS (sa.any_column, :search_string || ' WITHIN suffix') > 0
10 AND sa.advisor_type_id = a.advisor_type_id
11 AND sa.submission_id = s.submission_id
12 /
SUBMISSION_NAME ADVISOR
Some Research Paper Department Co-Chair John Doe PhD
Some Research Paper Department Co-Chair Jane Doe PhD
2 rows selected.
SCOTT@orcl_11gR2> EXEC :search_string := 'weather'
PL/SQL procedure successfully completed.
SCOTT@orcl_11gR2> SELECT s.submission_name,
2 a.advisor_type_name || ' ' ||
3 sa.first_name || ' ' ||
4 sa.last_name || ' ' ||
5 sa.suffix AS advisor
6 FROM submission_advisors sa,
7 submission s,
8 advisor_type a
9 WHERE CONTAINS (sa.any_column, :search_string || ' WITHIN submission_name') > 0
10 AND sa.advisor_type_id = a.advisor_type_id
11 AND sa.submission_id = s.submission_id
12 /
SUBMISSION_NAME ADVISOR
Thesis on 17th Century Weather Patterns Professor Johan Smith
Thesis on 17th Century Weather Patterns Associate Professor Magnus Jackson MS
2 rows selected. -
How to create a lookup table in flex
Hi,
I am not sure how to construct and use a lookup table in flex, i have a string which needs to replaced with a string in the lookup table. Can someone let me know can i can do this.
Thanks@learningflex,
Here is the simple example of doing this..
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="onCreationComplete();">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import flash.utils.setInterval;
import mx.controls.Alert;
[Bindable]
private var dataList:ArrayCollection = new ArrayCollection([
{name:'Person'},
{name:'Student'},
{name:'Teacher'},
{name:'Employee'}]);
private function onCreationComplete():void
for(var i:int=0;i<dataList.length;i++)
var obj:Object = dataList.getItemAt(i);
obj.abbr = getAbbrevatedName(obj.name);
dataList.setItemAt(obj,i);
dataGrid.dataProvider = dataList;
private function getAbbrevatedName(name:String):String
switch(name)
case "Person":
return "prsn";
case "Student":
return "sdt";
case "Teacher":
return "tcr";
case "Employee":
return "emp";
default:
return "";
]]>
</mx:Script>
<mx:DataGrid id="dataGrid" x="10" y="177" visible="true">
<mx:columns>
<mx:DataGridColumn headerText="Actual Name" dataField="name"/>
<mx:DataGridColumn width="150" headerText="Abbrevated Name" dataField="abbr"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
See I have displayed both the FullNames in one column and also the abbrevated names in another column. So you can make use of the second column.
Thanks,
Bhasker -
Syndicating Key mapping value from lookup table
Hi Experts,
I want to Syndicating Remote Key value from lookup table as per the remote system.
In syndicator, if I map destination field to the remote key of the lookup table, I am getting blank value.Hi Mrinmoy,
kindly check in the Data Manger whether have you maintained Remote keys for the lookup table. If yes then choose the specified remote system from Remote key override fields under Map properties in the syndicator.
Incase you cant find the remote system in the "remote key override" field for which remote key is assigned in Data manager, then you need to check the Type (outbound) of the remote system in Console admin node. Because only those Remote systems type set as Outbound can been found in Remote key Override in the syndicator.
After choosing the remote key you need to map the destination field with Remote key value as shown in the below image.
Regards
Rahul -
Hi,
I need some advice on remote keys for lookup tables.
We have loaded lookup data from several client system into the MDM repository. Each of the client system can have diffferences in the lookup values. What we need to do is to enable the keymappings so that the syndicator would know which value belongs to which system.
The tricky part is. We haven't managed to send out the values based on the remote keys. We do <b></b>not<b></b> want to send the lookup tables themselves but the actually main table records. All lookup data should be checked at the point of the syndication and only the used lookup values that orginally came from one system should be send to that particular system. Otherwise they should be tag should be blank.
Is this the right approach to handle this demand or is there a different way to take care of this? What would be the right settings in the syndicator?
Help will be rewarded.
Thank you very much
best regards
NicolasHi Andreas,
that is correct. Let's take two examples:
1) regions
2) Sales Area data (qualified lookup data)
Both tables are filled and loaded directly from the R/3s. So you would already know which value belongs to which system.
The problem that I have is that we will not map the remote key from the main table because it will be blank for new created master data (Centralization scenario). Therefore we cannot map the remote key from the attached lookup tables, can we?
The remote key will only work for lookup tables if the remote key of the actual master data is mapped. Since we don't have the remote key (local customer ID form R/3) in MDM and since we do not create it at the point of the syndication... how would the SAP standard scenario would look like for that?
This is nothing extraordinary it's just a standard centralization scneario.
Please advice.
Thanks alot
best regards
Nicolas -
Create key mapping using import manager for lookup table FROM EXCEL file
hello,
i would like create key mapping while importing the values via excel file.
the source file containing the key, but how do i map it to the lookup table?
the properties of the table has enable the creation of mapping key. but during the mapping in import manager, i cant find any way to map the key mapping..
eg
lookup table contains:
Material Group
Code
excel file contain
MatGroup1 Code System
Thanks!
ShantiHi Shanti,
Assuming you have already defined below listed points
1) Key Mapping "Yes" to your lookup table in MDM Console
2) Created a New Remote System in MDM console
3) proper rights for your account for updating the remote key values in to data manager through import manager.
Your sample file can have Material Group and Code alone which can be exported from Data Manager by File-> Export To -> Excel, if you have data already in Data Manager.
Open your sample file through Import Manager by selecting the remote system for which you want to import the Key mapping.
(Do Not select MDM as Remote System, which do not allows you to maintain key mapping values) and also the file type as Excel
Now select your Soruce and Destination tables, under the destination fields you will be seeing a new field called [Remote Key]
Map you source and destination fields correspondingly and Clone your source field code by right clicking on code in the source hierarchy and map it to Remote Key if you want the code to be in the remote key values.
And in the matching criteria select destination field code as a Matching field and change the default import action to Update NULL fields or UPDATED MAPPED FIELDS as required,
After sucessfull import you can check the Remote Key values in Data Manager.
Hope this helps
Thanks
Sowseel -
Error while updating lookup table through PSI
Hi,
I am trying to update a lookuptable through PSI using following code :
$lookupTableGuid = $svcPSProxy.ReadLookupTables($EPMTYString, 0 , 1033).LookupTables | where {$_.LT_NAME -eq $Lookuptablename}
$lookuptable = $svcPSProxy.ReadLookupTablesbyUids($lookupTableGuid.LT_UID, 1 , 1033)
$lookuptablerowValues = $svcPSProxy.ReadLookupTablesbyUids($lookupTableGuid.LT_UID, 0 , 1033).LookupTableTrees
#get lookup table count
$lookuptableValues = $svcPSProxy.ReadLookupTablesbyUids($lookupTableGuid.LT_UID, 0 , 1033).LookupTableTrees
$count = $lookuptableValues.Count +1
#Insert the rows of table in Lookup Table
foreach ($rows in $table)
$value_Code = $rows.Item("Project_code")
$value_Name = $rows.Item("project_desc")
$GUID = [System.Guid]::NewGuid()
$LookupRow = $lookuptable.LookupTableTrees.NewLookupTableTreesRow()
$LookupRow.LT_STRUCT_UID = $GUID
$LookupRow.LT_UID = $lookupTableGuid.LT_UID
$LookupRow.LT_VALUE_TEXT = $value_Code
$LookupRow.LT_VALUE_DESC = $value_Name
$LookupRow.LT_VALUE_SORT_INDEX = ($count ++)
$lookuptable.LookupTableTrees.AddLookupTableTreesRow($LookupRow)
$error.clear()
#Exceptions Handling :
Try
$svcPSProxy.UpdateLookupTables($lookuptable , 0 , 1 , 1033)
Catch
write-host "Error updating the Lookup table, see the error below:" -ForeGroundColor Red -BackGroundColor White
write-host "$error" -ForeGroundColor Red
Initially, I tried to run with value of $value_code as "AACL", the code worked.
But when I tried to insert value of code as "AACL - ALKYL AMINES CHEMICALS LIMITED"
I got following error:
Exception calling "UpdateLookupTables" with "4" argument(s): "Response is not well-formed XML."
I could not understand why this error is appearing as I just added ' - ' to my code value. I checked for validity of ' - 'in the targeted column. No issue with that.
Please help.
Thanks and regards,
JayeshHi All,
The entries are maintained from DB level.
Thanks for the help.
DVRK -
Limiting the values in a lookup table
Hello everyone.
I was wondering if it is possible to limit the selectable values in a lookup table based on certain criteria, foremost the content of a separate field.
Example:
A product has a measurement key that determines which sizes are valid for a given product.
Is it possible for MDM to read this key and filter the values of the table holding all the values for all keys?
Hope that was somewhat clear what I'm trying to do.
Best regards,
AndersHello Andres:
I believe that what you should do is to place all the products types into Categories. There, you can give different attributes to each product and therefore, limit what the user can choose as its values.
For instance, you have two products A and B. Each one would have a separate "Measure" field.
Create Categories:
Cat_A
Cat_B
with separate attributes:
Cat_A
|____ Measure_A
Cat_B
|____ Measure_B
And in each Measure <b>Attribute</b> (not field) you can specify the correct values for each category (i.e Product type)
When the user chooses Cat_A as the product type, the Measure_A will appear, with its values. The same will happend for Cat_B
I hope that helps
Regards
Alejandro
Maybe you are looking for
-
4GB DDR 3 Modules On MSI X48C Platinum
Hi, so with the 7.4 bios it reads the sizes right, now i have 2 x 4gb kingmax 1333 ram but, it doesnt post with them is it compatibility or can it be the ram is faulty?
-
Problem in dynamic method execution???????
Hi, I am facing the problem in selecting the method at run time. I have a class with methods like myMethod1,myMethod2,myMethod3,myMethod4.... In my program I am receiving a parameter. for e.g. "2" Then I want to execute myMethod2. I am doing it this
-
Cannot send mail only after switching on/of airplane signal
Hi, have my Clasic for two weeks now. I am not able to send out mail. It works only after I switch off and then on again the airplane mode ( looks like BB is looking for radio signal). Any idea how to solve this?.
-
What causes my iphone5 data to spike to 300K at 6:39 AM while on wifi?
what causes my iphone5 data to spike to 300K at 6:39 AM while on wifi?
-
Business Phones - Nokia Still Dont Get It!
I've recently moved from a Blackberry to Nokia E5. I mut say that my new Nokia has everything the Blackberry does, except I was surprized to find that Nokia has learnt nothing from Blackberry's success. The email application on the E5 is nothing shor