Map input schema with highest id value in the node to output schema
<job job_reference="4444">
<jobnotes/>
<appointments>
<appointment id="1" slot_id="1" slot_ref="0830-1030" slot_start_time="08:30" slot_end_time="10:30" slot_description="0830-1030" date="19/02/2014" time="" tk_rowid="7367"
kept="" reason_code="" narrative="" status="DEL" scheme_id="1" day="4" created_by="" creation_date="19/02/2014 11:58:09" amended_by="" amended_date="19/02/2014 11:58:15"
apb_exported="N" />
<appointment id="2" slot_id="2" slot_ref="1030-1230" slot_start_time="10:30" slot_end_time="12:30" slot_description="1030-1230" date="19/02/2014" time="" tk_rowid="7368"
kept="" reason_code="" narrative="" status="ENT" scheme_id="1" day="4" created_by="" creation_date="19/02/2014 11:58:38" amended_by="" amended_date="19/02/2014 11:58:38"
apb_exported="N" />
</appointments>
</job>
The above is the input schema. I need to map the elements in appointment node with highest ID to the elements in the output schema. Of the two appointment nodes above, I should only pick up one node with highest ID and map the elements of it to
the output schema.
My apologies for not giving the input schema right.
<jobs>
<job job_reference="4444">
<jobnotes/>
<appointments>
<appointment id="1" slot_id="1" slot_ref="0830-1030" slot_start_time="08:30" slot_end_time="10:30" slot_description="0830-1030" date="19/02/2014" time="" tk_rowid="7367"
kept="" reason_code="" narrative="" status="DEL" scheme_id="1" day="4" created_by="" creation_date="19/02/2014 11:58:09" amended_by="" amended_date="19/02/2014 11:58:15"
apb_exported="N" />
<appointment id="2" slot_id="2" slot_ref="1030-1230" slot_start_time="10:30" slot_end_time="12:30" slot_description="1030-1230" date="19/02/2014" time="" tk_rowid="7368"
kept="" reason_code="" narrative="" status="ENT" scheme_id="1" day="4" created_by="" creation_date="19/02/2014 11:58:38" amended_by="" amended_date="19/02/2014 11:58:38"
apb_exported="N" />
</appointments>
</job>
<job>
<job job_reference="1111">
<jobnotes/>
<appointments>
<appointment id="1" slot_id="1" slot_ref="0830-1030" slot_start_time="08:30" slot_end_time="10:30" slot_description="0830-1030" date="19/02/2014" time="" tk_rowid="7367"
kept="" reason_code="" narrative="" status="DEL" scheme_id="1" day="4" created_by="" creation_date="19/02/2014 11:58:09" amended_by="" amended_date="19/02/2014 11:58:15"
apb_exported="N" />
<appointment id="2" slot_id="2" slot_ref="1030-1230" slot_start_time="10:30" slot_end_time="12:30" slot_description="1030-1230" date="19/02/2014" time="" tk_rowid="7368"
kept="" reason_code="" narrative="" status="ENT" scheme_id="1" day="4" created_by="" creation_date="19/02/2014 11:58:38" amended_by="" amended_date="19/02/2014 11:58:38"
apb_exported="N" />
</appointments></job></jobs>
I should pick up details of the appointment with Higesht ID for every job. For every job one record should exist as the ouput.
With the existing mapping, i am getting just one record as output no matter how many input jobs are there.
Input schema has got multiple jobs and within each job there are many appointments. So in each job I should pick up the one
with highest ID
Similar Messages
-
Problem with "Input text with List of Value"
Hi,
I have a table where i am storing country code using "Input text with List of Value". I want a another non base table item where i would like to show the "Country Name" of the select LOV. Kindly let know a way to implement the LOV where it returns the "Country code" to base table item and "Country name" to the non base table item.
thanks
SanjayHi,
I am getting lazy in chasing down the JDeveloper release by the ADF Faces component mentioned.. So I ask: Which verson of JDeveloper are you on ?
Frank -
Manually input ( or type ) the value of the node in hierarchy
Dear all,
I have the following requirement :
In the query, I am using a hierarchy node variable. Now, by default, on the selection screen the valued can be passed to this hierarchy node var. by a drill down on the hierarchy on which the variable is created and selecting one of the nodes.
Now, I would like to manually input ( or type ) the value of the node instead of performing the drilldown on the hierarchy and selecting the node..
It is this possible for a hierarchy node variable ?
Thanks,
KenpsHi Carlos,
You create a Variable with following selections
Type of variable : Hierarchy node
processing : Manual Input/Default value
Reference Char : Mention the CHAR that contain this hierarchy
Define it as SIngle value & Mandatory entry.user can see all the nodes in F4 help and selects the node as he wants
Hope it helps
Sriman
Edited by: Sreeman on Apr 21, 2008 8:34 PM -
Hardcode values of the node with cardinality 0..n
Good day!
I need to hardcode a list of element to the node with cardinality 0..n.
Node has two attributes.
How can I fill the node with a few element in the input mapping? I know I can do it with a single element by separating values by comma. Is it possible to fill the node?Hello.
I've the same problem. Can you say how to set list of values for a structure?
For example, we've node FIELD containing two attributes: ID and NAME.
FIELD is a node with cardinality 0..*. How to set at least two elements to the node?
Your example works only for simple attributes with cardinality 0..*, but it doesn't work for structures.
Best Regards,
Timur Semenchuk. -
Export txt file with all parameter values during the report execution
Hello,
I've developed one report in Report Builder 3.0 , report server being SRSS 2008 R2. This report has one report parameter named id_product. There are two data sets available. One data set is for populating the report table. In the second
data set I'm trying to export the id_product. The below query works fine only for single valued parameter id_product, this query being used in the second data set Report pops-up an error when trying to run the report for multiple products at the same
time. I looked in SQL Profiler and it seems like inserting the parameter values in the global temporary table is not possible using the current code.
I'm aware of the VB Expression named Join but in such case I'm not sure if I can use it. It would be great if I can use this kind of expression. This way I would not create the data set anymore.
Current query:
drop table ##SelectedValuescreate table ##SelectedValues(id_product nvarchar(max))insert into ##SelectedValues(@id_product) exec xp_cmdshell 'bcp "select ''id_product'' union all select * from ##SelectedValues" queryout "G:\Report\sqloutput.csv" -c -T -t'
Input: ProductId parameter values : 12, 16, 20
Desired output in csv:
id_product
12
16
20Hi chopstix21,
Just as you thought, we can use join function to insert the values from a multiple value parameter to a temp table with VB Expression. After testing it in my own environment, we can refer to the following steps:
Create the second dataset using the query below:
drop table ##SelectedValues
create table ##SelectedValues(id_product nvarchar(max))
insert into ##SelectedValues(‘1’)
exec xp_cmdshell 'bcp "select ''id_product''
union all select * from ##SelectedValues" queryout "G:\Report\sqloutput.csv" -c -T -t'
Change the dataset using the expression like below:
="drop table ##SelectedValues"&
"create table ##SelectedValues(id_product nvarchar(max))" &
"insert into ##SelectedValues values (" & Join(Parameters! id_product.Value,"),(") &")" &
"select * from ##SelectedValues"
When we select 12, 16, 20 from parameter id_product, the second dataset will return 12, 16, 20 values as id_product field.
If there are any other questions, please feel free to ask.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Noob Question: Flowing Input Dataset Row/Record IDs Through to the Score Model Output
I've got a noob question that I'm having difficulty finding the answer to: if my input dataset contains row/record IDs and I want to flow these through to the Score Model module output but *don't* want to include this column in model training (because
it's just an arbitrary row tag), how do I go about accomplishing this?
I am able to Project Columns and eliminate the IDs entirely early in the process but then can't really determine which input row a prediction is associated with because I've lost the IDs. I'm not quite sure how to accomplish what I'm trying to do via
the Metadata Editor, either.
Surely somebody else has dealt with this same question. If the solution is implemented somewhere in a Gallery experiment that you'd like to point me at, too, that would also be just as good as a written explanation.
Thanks in advance,
KevinHey Kevin!
Sorry for making this process unclear :( Azure ML has a notion of Feature Columns
(by default everything is a Feature), that is columns/variables that are intended to be treated as part of the observation vector. You can use the Metadata Editor
and (after selecting the column(s) you want), mark the column as
Fields -> Clear Feature. This will have the semantics you desire - data attached to the input data while not being used for training.
Regards,
AK -
How to restrict some values in the final report output.
Hi Experts,
I have scenario where I dont want to include the values in the output of report.
If you observe above there are some un assigned cost elements and its the report output. I dont want these to be in the report.
Please suggest me.
Thanks,
RaviHi Friends,
Thank you for the reply.
I tried to exclude the values, but i dont find any chance to exclude them
If i try the same from characteristic restriction, its allowing me to exclude.
Is there any other possibility to restrict these? Please suggest -
Mapping a column with comma seperated values
Hi,
I have two tables
1. Tasks (task_id, task_description)
2. Task_assignment (username, task_assignment_value)
the task_assignment_value has a comma seperated list of task_ids.
What is the best ways to map the tables ?
Thanks in advance.
Moinuddin MohammedI have a couple of attributes where I do this. From TopLink's perspective, I just map it as a String. Then, in my accessors for the attribute, I transform the primitive between the String and an Array or however the rest of the app wants to see the attribute.
Here's an example that's actually more complicated than absolutely necessary. The mapped attributed is indicatorValueListString. It is lazily converted to an Array of Enums when it is first accessed. And it is converted back to a String in the preWriteEventCallback that is mapped in the TopLink descriptor.
This implementation attempts to minimize the number of times the String<->Array conversion takes place, but if that's not a concern, it could be made much more simple. Also, at my company we privately manage collections with the Collection classes for dynamic allocation, but publicly exchange Arrays for type-safety. This could also be factored out. ValuedEnumUtils basically manages asking the enum for its delimiter and performing the actual conversion between a String and an Array or back.
private String indicatorValueListString;
private List indicatorValueSelections;
private List indicatorValueSelections() {
if (indicatorValueSelections == null) {
indicatorValueSelections = new ArrayList();
if (indicatorValueListString != null) {
indicatorValueSelections =
java.util.Arrays.asList(ValuedEnumUtils.decodeEnumString(
IndicatorValueEnum.class,indicatorValueListString));
return indicatorValueSelections;
private void indicatorValueSelections(List newIndicatorValueSelections) {
indicatorValueSelections = newIndicatorValueSelections;
public IndicatorValueEnum[] getIndicatorValueSelections() {
return (IndicatorValueEnum[])indicatorValueSelections().toArray(new IndicatorValueEnum[0]);
public void setIndicatorValueSelections(IndicatorValueEnum[] newIvSelections) {
indicatorValueSelections(java.util.Arrays.asList(newIvSelections));
public boolean addIndicatorValueSelection(IndicatorValueEnum anIvEnum) {
return indicatorValueSelections().add(anIvEnum);
public boolean removeIndicatorValueSelection(IndicatorValueEnum anIvEnum) {
return indicatorValueSelections().remove(anIvEnum);
public void preWriteEventCallback(DescriptorEvent aDescriptorEvent) {
// Note: Not using accessor to avoid lazy initialization if no changes
// are necessary.
if (indicatorValueSelections != null) {
indicatorValueListString =
ValuedEnumUtils.encodeEnumString((ValuedEnum[])indicatorValueSelections.toArray());
} -
Same Input name with different data type cause the reflection exception
I have a proxy contains couple RFCs. Two RFCs contain an argument named IN_COMPANY_CODE with data type of ZTRE_FX_BUKRSTable. Another RFC contains the same argument name of IN_COMPANY_CODE but hold different data type (String). All RFCs are in the same proxy. Complie and build the application with no issue.
But when I ran the RFC, it generates the reflection exception below:
Method SAPProxy1.Z_F_Tre_R_Pre_Trade_Fx can not be reflected. --> There was an error reflecting 'In_Company_Code'. > The XML element named 'IN_5fCOMPANY_--5fCODE' from namespace '' references distinct types System.String and MSTRFOREX.ZTRE_FX_BUKRSTable. Use XML attributes to specify another XML name or namespace for the element or types.
I realize the conflict introduced by the same name with difference data type. But I would like to know if this is fixable as a bug or if there is any best practice and/or some manual intervention to make it work.Please install fix from OSS note 506603. After this, right-click .sapwsdl file and select "Run custom tool".
-
Payment terms with 50% of value of the invoice in diferent dates
Hi Sap Gurus,
I would like to request your help for teh following issue.
We need to use a SAP condition that 50% of the invoice is payd immediatly and 50% in 30 days
How can do that?You have to create 3 payment terms
Ex:
1st step
create payment terms
Create 0005 payment term as Immediate
create 0006 payment term as 30 days due
create 0007 payment term as installment payment term (Here you need to check installment payment term)
2nd step
create installment payment terms
create 0007 50% with 0005 payment term
create 0007 50% with 0006 payment term
I think your problem will be solved
thanks ®ards
shankar chitupolu
Edited by: chitupolushankar on Oct 24, 2011 6:09 PM -
Problem with retrieving a value from the import parameter of a method
Hi Friends,
I have a problem accessing the field.
I have a import paramter in the method of my Z class. The import paramter is of type ANY.
In my method I get the value of this import paramter as
. In this I have a field Catalog Id which is a z field.
How should I retrieve the value of this catalog Id from this importing parameter?
Regards,
RajuHi Friends
Can anyone tell me whether this is a structure or a Class refernce, so that I can access the field in that.
Regards,
Raju -
Fill a table column with an empty value as the column is not existing in the data file
Hello,
I m new to SQL loader
I have a table like this :
CREATE table ListeEcriture
( "NUMERO" varchar2 (8 bytes)
"dateEcr" varchar (10 byte)
"CodeOp" Varchar2 (10 byte)
"LibOp" varchar (32 byte)
"CodeVal" varchar (12 byte)
"NumCompte" varchar (8 bytes)
This is my control file :
load data
infile 'C:\ReQ\FR00010303.txt'
into table ListeEcriture
fields terminated by ";"
(numero, DateEcr, CodeOp, libOp, CodeVal "FR00010303", NumCompte)
The problem is thataslo if possible to ignore the file header it would be really greatYou might be after SQL*Loader Control File Reference
Check SQL*Loader Concepts for the big picture.
Regards
Etbin -
Service not registered with listener on one of the nodes?
We have an 11.2.0.1 oracle RAC with 2 nodes. Recently the listener died on node 1 and after a manual startup it seems like the service doesn't register with the listener on this node.
Here's what statusing the listener on both nodes shows:
[oracle@db01]$ $GRID_HOME/bin/lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-NOV-2010 12:27:49
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 17-NOV-2010 07:14:40
Uptime 0 days 5 hr. 13 min. 9 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/db01/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.128.4)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.128.14)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM1", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@db02 ~]$ $GRID_HOME/bin/lsnrctl status listener
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-NOV-2010 12:30:08
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 17-NOV-2010 07:14:40
Uptime 0 days 5 hr. 15 min. 28 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/db02/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=LISTENER)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.128.5)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.128.15)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM2", status READY, has 1 handler(s) for this service...
Service "prd1.somehost.net" has 1 instance(s).
Instance "prd12", status READY, has 1 handler(s) for this service...
Service "prd1XDB.somehost.net" has 1 instance(s).
Instance "prd12", status READY, has 1 handler(s) for this service...
The command completed successfully
The prd12 instance shows as registered with the listener on db02 but the prd11 doesn't on db01. Right now all connections are routed to the prd12 instance. Also trying to connect to prd11 manually returns "ORA-12505: TNS:listener does not currently know of SID given in connect descriptor". The prd11 instance is actually running and I can connect to it locally via 'sqlplis "/ as sysdba"' but not via 'sqlplus user/pass@prd1'. I'm wondering what went wrong and how to register the prd11 with the listener on db01.
Here's some more information
[oracle@db01 ~]$ $GRID_HOME/bin/srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node db02
SCAN Listener LISTENER_SCAN2 is enabled
SCAN listener LISTENER_SCAN2 is running on node db01
SCAN Listener LISTENER_SCAN3 is enabled
SCAN listener LISTENER_SCAN3 is running on node db01
[oracle@db01 ~]$ $GRID_HOME/bin/srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node db02
SCAN VIP scan2 is enabled
SCAN VIP scan2 is running on node db01
SCAN VIP scan3 is enabled
SCAN VIP scan3 is running on node db01
[oracle@db01 ~]$ $GRID_HOME/bin/srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): db01,db02
Thanks in advance,
Nick
Edited by: user639426 on Nov 17, 2010 4:44 AMSeems like the LISTENER_SCAN2 and LISTENER_SCAN3 are running on node 1 but still I can't status them
[oracle@db01 ~]$ ps -ef | grep tns
oracle 6227 31486 0 08:24 pts/1 00:00:00 grep tns
oracle 18049 1 0 Nov17 ? 00:00:20 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER -inherit
oracle 18120 1 0 Nov17 ? 00:00:16 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN2 -inherit
oracle 18131 1 0 Nov17 ? 00:00:05 /u01/app/11.2.0/grid/bin/tnslsnr LISTENER_SCAN3 -inherit
[oracle@db01 ~]$ $GRID_HOME/bin/lsnrctl status LISTENER_SCAN2
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-NOV-2010 08:25:11
Copyright (c) 1991, 2009, Oracle. All rights reserved.
TNS-01101: Could not find service name LISTENER_SCAN2
[oracle@db01 ~]$ $GRID_HOME/bin/lsnrctl status LISTENER_SCAN3
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-NOV-2010 08:25:18
Copyright (c) 1991, 2009, Oracle. All rights reserved.
TNS-01101: Could not find service name LISTENER_SCAN3
/u01/app/11.2.0/grid/network/admin/listener.ora contents:
LISTENER_SCAN2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN2)))) # line added by Agent
LISTENER_SCAN3=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN3)))) # line added by Agent
LISTENER=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))) # line added by Agent
LISTENER_SCAN1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER_SCAN1)))) # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN3=ON # line added by Agent
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN2=ON # line added by Agent
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora contents:
PRD1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = prdcluster-scan)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prd1.somehost.net)
Everything worked just fine for quite some time until I found the listener down one morning and started it up manually. I wonder if I didn't start up the processes correctly. I did:
$GRID_HOME/bin/srvctl stop scan_listener
$GRID_HOME/bin/srvctl stop scan
$GRID_HOME/bin/srvctl stop listener
$GRID_HOME/bin/srvctl start listener
$GRID_HOME/bin/srvctl start scan
$GRID_HOME/bin/srvctl start scan_listener
Is this the correct way of starting up the listener processes?
Nick -
Problems with Mapping Input Parameter
Hi everybody,
just another question. I have a Mapping with an Mapping Input Parameter. If i provide a Parameter with an prefixed 0 e.g.: 01234 the output of this is 1234.
How can i manage this that the output of the Input Parameter ist 01234 and not like now 1234?
Many thanks in advance.
GreetingsThe Mapping Input Parameter is of type varchar2 and it still gives 1234. The Problem is i have to provide the whole input parameter for logging proposes. I managed this now by building a workflow an provide the mapping input parameters to new variables. Now the Input 01234 gives 01234....:-)
Does anybody know another solution for this problem?
Greetings -
How I can stop the combo box with list of values from fireing validations
Hi I'm using Jdeveloper 11.1.2.3.0
Using Hr Schema employees table
I Display employees data in af:table
and I make List Of values on Department_id filed to easy change the employee department
and another one on Job_id filed
and Imake them UI Hints as ( combo box with list of values ) in the employeesVO
the problem is when I Select a value from department or jobs ( combo box with list of values )
fires the entire filed validations for mandatory atributes
Note : the af:table Property ( contedelivery) is set to (immediate )
How I can stop the combo box with list of values from fireing validationscheck it out.,
http://andrejusb.blogspot.in/2012/09/what-to-do-when-adf-editable-table.html
Maybe you are looking for
-
IMovie special effects gone with 08?
are the special effects from imovie gone? im talking about where you can put clips in slow motion and reverse them, do lightning effects, and mirror. i cant figure out how to get to them if they're still there.
-
Not Working ENTER TV Tuner in my NOTEBOOK WINDOWS 8.1
Hello Sir, My TV Tuner is not Working in my Laptop (Windows 8.1 64-Bit os). TV Tuner Model- Enter USB 2.0 TV STICK (Model No. E-260U). PLZ Sir Reply.
-
Drag 'n Drop to other Adobe Apps
Hello... I searched the forum but didn't get quite the results I was expecting. So I ask here in a new Topic. Is it possible to Drag 'n Drop a picture to for example InDesign, like it is possible in Bridge? Maybe there is a workaround for that featur
-
Reduce color in-depth on MacBook Pro Retina
Hi, guys! Is it possible to reduce color in-depth on Retina display to 16 bit?
-
Safari 7 update for OS X 10.7.5
I am unable to update Safari as I am unable to update my OSX on my macbook pro as the "hardware" was purchased in 2007 (note apple, this was during the time that Window's ruled so people who owned mac's around this time should be considered your core