Upgrade logic for the projectmix
I'm using logic pro 7.01 and i was wondering if i should get the upgrade 7.1 because i have a projectmix now and have some really annoying problems with it.
Do you think it will help or is there not that much difference?
Thanks
You should make the bump up anyways!
not much worth noting in ver.7.2, but 7.1 would at least offer some new plugins that you may get some use out of... even that is worth the cost of upgrading, even if used only once.
.... if you are the same chap that had the PM I|O issue, then you are all set with the hardware issue right?
Similar Messages
-
Conversion logic for the following!!
Hi,
Experts
can you help me to build a conversion logic for the following
1.BKPF-BLART .setting it to 'ZF'.
2.BKPF-MONAT derived from posting date
3.BKPF-WAERS set to GBP
4.Dr/.Cr indicator BSEG-SHKZG.
If Posting Key (BSEG-BSCHL) is u201840u2019 then this indicator (BSEG- SHKZG)is u2018Su2019 (Debit)
If Posting Key (BSEG-BSCHL) is u201850u2019 then this indicator (BSEG- SHKZG)is u2018Hu2019 (Credit)
5.a)If Cost Object Type is u2018Cu2019 (= Cost Centre), then Cost Collection Object Id shall be mapped to BSEG- KOSTL.
BSEG- PRCTR should be derived from the Cost Centre Master data CSKS- PRCTR.
Effective date should fall between the validity dates CSKS-DATAB and CSKS-DATBI
b)If Cost Object Type is u2018Iu2019 (= Internal Order), then Cost Collection Object Id shall be mapped to BSEG- AUFNR.
BSEG - PRCTR should be derived from the Internal Order Master data AUFK-PRCTR
c)If Cost Object Type is u2018Wu2019 (= Work Breakdown Structure element), then Cost Collection Object Id shall be mapped to BSEG-PROJK.
BSEG - PRCTR should be derived from the WBS Master data PRPS-PRCTR
d)If Cost Object Type is u2018Pu2019 (= Profit Centre), then Cost Collection Object Id shall be mapped to BSEG - PRCTR.
6.Ledger Group BKPF-LDGRP. Set it to u2018Blanku2019 so that the document is posted to all ledgers.
7.Set BSEG-KOKRS (Controlling Area) to 1000.Please do not dump your specs here expecting others to do you work.
matt -
Upgrade status for the current version: Outdated for
Hello,
we are running solution manager 7 EHP1 sps22.
this system has been recently upgraded to this version.
now before running solman_setup i tried to log into the /smd - solution
manager diagnostics i got the following messages -
"Upgrade status for the current version is outdated. Please upgrade now""Maintenance mode is enabled. Some applications will be disabled or might
not work"
i couldn't change the maintenence mode to disabled mode - since there isno agaent administration in the regular path - Diagnostics
Administration-Managed SystemsAgent Administration.
as a result i can't goto Diagnostics Setup-----Diagnostics
System--Advance setup and start the upgrader - i'm getting the followingerror message - Upgrade status for the current version: Outdated for
this version .
LM-Service is in patch 06 - latest release asa far as i know.you are running into the same error like in your other thread.
please avoid double postings
see SAP Note #1273028
Known problems in all Releases 80
The bytecode instrumentation agent 8.0 cannot be used for Solution Manager self-monitoring. Please use Java agent version 7.2 for self monitoring of the Solution Manager Java stack. Otherwise Setup for Introscope Agents fails with
java.lang.NoSuchMethodError: com.wily.isengard.api.TransportConfiguration.<init>(IZZ)V ... -
HT1444 What is the "software upgrade" available for the OS X 10.5.8?
What is the "software upgrade" available for the OS X 10.5.8?
Here is a link to buy Snow Leopard, but you need to wait to use it because the Apple Store is being updated, probably because of the meeting Apple has called for today.
Snow Leopard Purchase -
Need Mapping logic for the following scenario
Hi everyone,
I need a mapping logic for the following scenario.
For the same order no with same material no, the quantity should be summed and only one idoc should be created.
For the same order no with different material no, no need to sum the quantity and only one idoc should be created.
For example:
Source Structure:
Ord No Mat No QTY
12 1 2
13 1 3
13 2 1
12 2 4
15 1 5
14 3 7
12 1 6
Target Structure:
Ord No Mat No QTY
12 1 8
12 2 4
13 1 3
13 2 1
14 3 7
15 1 5
Thanks in AdvanceTry the graphical mapping as shown below using concat with a space as delimite and UDF to split the value again by space.
1. Idoc node
(RootContext)
OrdNo
|concat[ ] -> sort[asending] -> SplitByValue -> collapseContexts -> Idoc
MatNo case sensitive [ValueChange]
(RootContext)
2. OrdNo
OrdNo(RC)
|concat[ ] -> sort[asending] ->SplitByValue->collapseContexts->SplitByVale-> UDF to fetch ordno -> OrdNo
MatNo(RC) case sensitive [ValueChange] [eachValue] (return var1.split(" ")[0];)
3. MatNo
OrdNo(RC)
|concat[ ] -> sort[asending] -> SplitByValue ->collapseContexts->SplitByVale-> UDF to fetch ordno -> MatNo
MatNo(RC) case sensitive [ValueChange] [eachValue] (return var1.split(" ")[1];)
4. Qty
[asending,case sensitive]
-- sortByKey -----> formatByExample -> sum ->Qty
OrdNo(RC) | | ^
|concat[ ] -> | Qty(RC) |
MatNo(RC) | |
--sort[asending]-> SplitByValue
case sensitive [ValueChange]
Regards,
Sunil Chandra -
What are logics for the SAP UI icons of "Back", "Exit" and "Cancel"?
Hi SAP experts,
This question may sound kind of strange - isn't that obvious?
While, it is in fact a very important and difficult issue for UI app implementations when UI flow should be kept persistant. I have been feeling confused when doing UI implementations in Personas, specially when at some screens I need to add my own "BACK" button in order to go back to the previous screen (which can be different screens depending flow conditions.)
Can anyone explain what the basic logic is used for the SAP "Back", "Exit" and "Cancel" buttons (see below)?
Here are my understandings (which may not be accurate or correct):
1. "Back" icon (left): By pressing this icon, all the changes made in the current screen are discarded, and UI moves back to the previous screen. If there are some fields already been filled with values in the previous screen, there can be two UI behaviours depending on the platforms used:
a) Some platform will restore the values so the screen looks EXACTLY like before.
b) Some others will leave all fields empty (While, this can be annoying if you have to re-fill all the fields).
2. "Exit" icon (middle): By pressing this icon, all the changes made in the current screen are discarded, and UI moves back to the "Initial (or Home)" screen which in most time should be the first launching page of the app.
3. "Cancel" icon(right): I am very confused by this key - what is the special functionality of this key compared to those of the "Back" key and "Exit" key?
I have been working in many years on developing UI apps for mobile devices, and there were no such three types of keys for UI navigations. Maybe I missed some special points that is special only on SAP?
Thanks a lot in advance!
Dong ZhuThis may not sound that interesting so I will close it to keep our track "clean".
By the way, just want to share some finding - in Personas, when replacing the Exit or Cancel buttons by transactions, I found that "/n" and "SMEN" does not give the same result, and it depends on whether it is the Exit button or Cancel button that is to be replaced.
Close this question.
Dong Zhu -
Hello,
We need some help with an SSAS MDX query based on date logic. One of the problems is that I don't have access to the Cube but have been given a query example with the logic needed for the calculation. Here's the scenario;
The ETL process will run on the first Tuesday after the 15<sup>th</sup> of a given month. The Analysis Cube data queried should include the current year up to the end of the previous month. For example, on May 19<sup>th</sup>
(the first Tuesday on or after the 15th) the query should include data from January 1<sup>st</sup> through April 30<sup>th</sup>.
The 15<sup>th</sup> of the month is not part of the query, it is a factor in when the query is run. The query will always be in terms of complete months.
SELECT
NON EMPTY { [Measures].[Revenue Amount],
[Measures].[Utilization],
[Measures].[AVG Revenue Rate],
[Measures].[Actual Hours] }
ON
COLUMNS,
NON EMPTY { ([dimConsultant].[User Id TT].[User Id TT].ALLMEMBERS * [dimConsultant].[Full Name].[Full Name].ALLMEMBERS * [dimConsultant].[Employee
Type].[Employee Type].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION,
MEMBER_UNIQUE_NAME
ON
ROWS
FROM
( SELECT
( { [dimDate].[Week Date].[1/4/2015], [dimDate].[Week Date].[1/11/2015], [dimDate].[Week Date].[1/18/2015], [dimDate].[Week Date].[1/25/2015], [dimDate].[Week Date].[2/1/2015] } )
ON
COLUMNS
FROM
( SELECT
( { [dimIsBillable].[Is Billable].&[True] } )
ON
COLUMNS
FROM
[SSASRBA]
WHERE
( [dimIsBillable].[Is Billable].&[True], [dimDate].[Week Date].CurrentMember ) CELL PROPERTIES VALUE,
BACK_COLOR,
FORE_COLOR,
FORMATTED_VALUE,
FORMAT_STRING,
FONT_NAME,
FONT_SIZE,
FONT_FLAGSHi Hans,
Thank you for your question.
I am trying to involve someone more familiar with this topic for a further look at this issue. Sometime delay might be expected from the job transferring. Your patience is greatly appreciated.
Thank you for your understanding and support.
Regards,
Simon Hou
TechNet Community Support -
Does the QT MPEG2 upgrade allow for the use of m2t files in FCP?
I just noticed the product the Apple store - and since I'm on the way to return a Firestore FS4..... Will this upgrade allow FCP to edit m2t?
Thanks gents - I heard the same rumor today from Focus' technical support - they are waiting for the QT patch to test and issue a firmware upgrade for the Firestore units, but they didn't expect a solution until April. sigh I had hoped the upgrade was new, and this was the software they were waiting for.
-
HI All,
Please expalin the logic behind the code and how can we put it simpler this logic by reducing the number of lines of the following logic
FORM fisical_period.
data : l_start_month like v_start_month,
l_end_month like v_end_month.
data: l_current_year like t009b-bdatj,
l_variant like t009-periv.
call function 'CCODE_GET_FISCAL_YEAR_VARIANT'
EXPORTING
company_code = p_bukrs
IMPORTING
fiscal_year_variant = l_variant
EXCEPTIONS
company_code_not_found = 1
others = 2.
if sy-subrc <> 0.
message i368(00) with 'Unable to get Fiscal year'.
endif.
l_current_year = sy-datum(4).
call function 'FIRST_AND_LAST_DAY_IN_YEAR_GET'
EXPORTING
i_gjahr = l_current_year
i_periv = l_variant
IMPORTING
e_first_day = p_fiscal-low
e_last_day = p_fiscal-high
EXCEPTIONS
input_false = 1
t009_notfound = 2
t009b_notfound = 3
others = 4.
if sy-subrc <> 0.
message i368(00) with 'Unable to get the first and last day'.
endif.
if sy-datum < p_fiscal-low.
p_fiscal-low = p_fiscal-low - 365.
p_fiscal-high = p_fiscal-high - 365.
endif.
append p_fiscal.
v_start_month = p_fiscal-low+4(2).
v_end_month = p_fiscal-high+4(2).
if v_start_month >= 01 and v_start_month <= 03.
move 01 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 02 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 03 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 04 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 05 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 06 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 07 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 08 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 09 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 10 to fiscal_quarter_4-month.
append fiscal_quarter_4.
move 11 to fiscal_quarter_4-month.
append fiscal_quarter_4.
move 12 to fiscal_quarter_4-month.
append fiscal_quarter_4.
elseif v_start_month >= 04 and v_start_month <= 06.
move 04 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 05 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 06 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 07 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 08 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 09 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 10 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 11 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 12 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 01 to fiscal_quarter_4-month.
append fiscal_quarter_4.
move 02 to fiscal_quarter_4-month.
append fiscal_quarter_4.
move 03 to fiscal_quarter_4-month.
append fiscal_quarter_4.
elseif v_start_month >= 07 and v_start_month <= 09.
move 07 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 08 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 09 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 10 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 11 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 12 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 01 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 02 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 03 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 04 to fiscal_quarter_4-month.
append fiscal_quarter_4.
move 05 to fiscal_quarter_4-month.
append fiscal_quarter_4.
move 06 to fiscal_quarter_4-month.
append fiscal_quarter_4.
else.
move 10 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 11 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 12 to fiscal_quarter_1-month.
append fiscal_quarter_1.
move 01 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 02 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 03 to fiscal_quarter_2-month.
append fiscal_quarter_2.
move 04 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 05 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 06 to fiscal_quarter_3-month.
append fiscal_quarter_3.
move 07 to fiscal_quarter_4-month.
append fiscal_quarter_4.
move 08 to fiscal_quarter_4-month.
append fiscal_quarter_4.
move 09 to fiscal_quarter_4-month.
append fiscal_quarter_4.
endif.
IF NOT p_fiscal IS INITIAL.
perform get_fiscal_year.
ENDIF.
IF NOT p_fiscal IS INITIAL.
v_start_year = p_fiscal-low+2(2).
v_end_year = p_fiscal-high+2(2).
v_start_year = r_gfiscal-low+2(2).
v_end_year = r_gfiscal-high+2(2).
v_start_month = r_gfiscal-low+4(2).
v_end_month = r_gfiscal-high+4(2).
move 'Jan' to i_months-month.
append i_months.
move 'Feb' to i_months-month.
append i_months.
move 'Mar' to i_months-month.
append i_months.
move 'Apr' to i_months-month.
append i_months.
move 'May' to i_months-month.
append i_months.
move 'Jun' to i_months-month.
append i_months.
move 'Jul' to i_months-month.
append i_months.
move 'Aug' to i_months-month.
append i_months.
move 'Sep' to i_months-month.
append i_months.
move 'Oct' to i_months-month.
append i_months.
move 'Nov' to i_months-month.
append i_months.
move 'Dec' to i_months-month.
append i_months.
if v_end_month < v_start_month.
v_find_month = 13 - v_start_month.
do v_find_month times.
read table i_months index v_start_month.
move v_start_month to fiscal_months-month.
move i_months-month to fiscal_months-literal.
move v_start_year to fiscal_months-year.
append fiscal_months.
add 1 to: v_number_of_months, v_start_month.
enddo.
do v_end_month times.
read table i_months index sy-index.
move sy-index to fiscal_months-month.
move i_months-month to fiscal_months-literal.
move v_end_year to fiscal_months-year.
append fiscal_months.
add 1 to v_number_of_months.
enddo.
else.
v_find_month = v_end_month - v_start_month + 1.
do v_find_month times.
read table i_months index v_start_month.
move v_start_month to fiscal_months-month.
move i_months-month to fiscal_months-literal.
move v_start_year to fiscal_months-year.
append fiscal_months.
add 1 to: v_number_of_months, v_start_month.
enddo.
endif.
ENDIF.
ENDFORM.
form get_fiscal_year.
data : l_lst_day like sy-datum,
l_frst_day like sy-datum,
l_fisc_vnt like t009-periv, "fiscal year variant
l_fisc_prd like t009b-poper,
l_fisc_yr like t009b-bdatj,
l_lines like sy-index.
data : i_periods like table of periods with header line.
perform get_fiscal_year_variant using p_bukrs
changing l_fisc_vnt.
perform get_period_on_date using p_fiscal-low
l_fisc_vnt
changing l_fisc_prd
l_fisc_yr.
call function 'G_PERIODS_OF_YEAR_GET'
EXPORTING
variant = l_fisc_vnt
year = l_fisc_yr
IMPORTING
last_normal_period = l_fisc_prd
TABLES
i_periods = i_periods
EXCEPTIONS
variant_not_defined = 1
year_not_defined = 2
others = 3.
if sy-subrc <> 0.
message i368(00) with 'Unable to Convert Periods'.
endif.
describe table i_periods lines l_lines.
read table i_periods index 1.
move i_periods-datab to r_gfiscal-low.
read table i_periods index l_lines.
move : i_periods-datbi to r_gfiscal-high,
'I' to r_gfiscal-sign,
'BT' to r_gfiscal-option.
append r_gfiscal.
endform. " get_fiscal_year
form get_fiscal_year_variant using p_p_ccode like t001-bukrs
changing p_g_fisc_vnt like t009-periv.
call function 'CCODE_GET_FISCAL_YEAR_VARIANT'
EXPORTING
company_code = p_p_ccode
IMPORTING
fiscal_year_variant = p_g_fisc_vnt
EXCEPTIONS
company_code_not_found = 1
others = 2.
if sy-subrc <> 0.
message i368(00) with 'Unable to retrieve fiscal year variant'.
endif.
endform. " get_fiscal_year_variant
form get_period_on_date using p_p_dcfp like sy-datum
p_g_fisc_vnt like t009-periv
changing p_g_fisc_prd like t009b-poper
p_g_fisc_yr like t009b-bdatj.
call function 'DATE_TO_PERIOD_CONVERT'
exporting
i_date = p_p_dcfp
i_periv = p_g_fisc_vnt
importing
e_buper = p_g_fisc_prd
e_gjahr = p_g_fisc_yr
exceptions
input_false = 1
t009_notfound = 2
t009b_notfound = 3
others = 4
if sy-subrc <> 0.
message i368(00) with 'Unable to get period on date'.
endif.
endform. " get_period_on_date
ThanksHi,
Try to use FMs : (type quarter in fm name field and press f4.
FMs like follows will be dispalyed :
BKK_GET_QUARTER_DATE
HR99S00_TIME Generic time related functions
HR_99S_GET_DATES_QUARTER Get begin and end date of a qrtr
HR_99S_GET_QUARTER Get quarter
HRPAYBE_DMFA Function pool for DMFA
HR_BE_DAQ_CONDT_QUARTER Condition for declaring the Local Unit ID for DMFA
HR_BE_DAQ_QUARTER Get occupation line relevant data for DMFA
HRPAYBE_DMFA_WORKFLOW Workflow DMFA
HR_BE_DMFA_GET_QUARTER Retrieve quarter declared
KRGE
KR_GET_HEADQUARTER_BPLACE
SLIM_DATE_TOOLS
SLIM_GET_QUARTERLY_PERIODS
STS2 Time stream: Generate for periods
TSTR_PERIODS_QUARTERS Generate Time Stream for Quarters -
Extract file...I want the logic for the following case.
Hi Guys,
i_final having the following inputs.
I_FINAL
MATNR MAKTX CHARG
SK45 PROSK A
SK45 PROSK
SK45 PROSK 02/2007
BP013 PROSK
BP014 PROSK 02/2007
I want the following output.
I_FINAL
MATNR MAKTX CHARG
SK45 PROSK A
SK45 PROSK 02/2007
BP013 PROSK
BP014 PROSK 02/2007
In the above case for MATNR-SK45 if CHARG is space & has other entries then it should not display SPACE in the CHARG field.
In case of BP013 if CHARG is space & has no Other entries means, no other line items, it should display the SPACE in the CHARG field.
NOTE: No duplicate records for the Field CHARG.
can you tell me the logic using the above example ..
Please help me.I need Urgent..Exactly what issues are you having with the autonaming? What is the file name going to be based on? There are all sorts of conversion functions. You might need to convert a number to a string and then something like the Build Path or String to Path functions. The Write LabVIEW Measurements File has an option to autoname files. You can look at how it's done there by simply right clicking on the function and selecting Open Front Panel.
-
I have a requirement in which I need to write a program. I need to fetch the payer data which is having KNA1-ZZDTCESS value populated(Payer which are having this field value blank no need to fetch those payer).ZZDTCESS is the cession date and this is a custom field in KNA1.Its date element is DATUM.
Now after fetching this KNA1-ZZDTCESS value of the payer this needs to be updated to the all the sold-to-party which are attached to this payer.Sold-to-party also having this custom field.
Finally we need to develop a batch job which will run this program to udpate the ZZDTCESS value in the Sold-to-Party.
Can you please let anyone know how to write the logic for this program?Hi ,
Thanx for the answer but the requirement is there Sold to Party customer which is having different payer.For example see below.
SP 1000
SH 1000
PY 2000
BP 1000
Now from the PY 2000 KNA1-ZZDTCESS value nees to be updated to the sold to party 1000 KNA1-ZZDTCESS field.Please let me know how to write the logic for that. -
Upgrade bang for the buck?
With the increasing percentage of time I'm spending on HD projects as well as Motion work, I need to speed up my setup. I'm weighing bang for the buck between investing in my current machine or scrapping it and buying a new machine. My principle issues are:
1) I need to be able to drive a 32" HD display for my clients in addition to my 20" monitor. Can't afford a broadcast HD monitor so I'm using a consumer display.
2) Need to improve render times on FCP and Motion
3) Would like to improve compression time for QT output
If you had $2500 for upgrades or $4000 for a new machine (assuming I can sell this rig for $1500) what would you do? New video card, increase ram, faster disk i/o? New quad processor xeon machine (on the low end of the spectrum)? I'm struggling with whether it's worth putting considerable money into a G5 machine in this Xeon world.
Any advice is appreciated. Thanks.Not exactly sure how to tackle this. But the bottom line is: get a new machine! There's a couple ways to view it, I suppose:
1. Performance: Let's say you spend only the $2,500 on 'upgrades' to the G5. That's (about) 62% of the $4,000 route. Will that G5 perform 62% as well as a new Mac Pro. My guess is: no. The new Mac Pro will so handily spank that G5 that it's not even a contest.
2. Upgrades: whatever the fastest GFX card you can get into that G5 is a finite element. If you get a Mac Pro you could start with the "stock" card which is probably on par with the best of the G5 candidates. You could then upgrade to an ATI 3870. If you waited a little bit you could upgrade to the ATI 4870. (Not available yet.) Point being: the best options out there for the Mac Pro trounce the G5's options and we haven't even seen the end of the tunnel yet.
3. Longevity: let's peek into a worst case scenario: You spend $2,500 on 'upgrades' and the G5 poops out. Motherboard meltdown or something that renders it a doorstop. What recourse is there then? If you buy new, you've got a warranty and the ability to extend that as well. I like that peace of mind personally.
4. Future: Things are only going to grow more and more optimized for Leopard (and beyond) and the Intel platform. The PowerPC is already starting to get phased out. For example, Adobe has said After Effects CS4 will not even run on PowerPC. You can't expect any vendors - even Apple - to continue to focus on PPC when those resources can be put to optimizing the present and future: Intel & Leopard.
Just my 2 cents worth. But if it were me, I'd bust out the buffing cloth, put it to work, and introduce that G5 to some new friends over here. -
What is the logic for the behavior of LV9 when opening vi references?
I recently started using LV 9 and I can't figure out what the rationale is for the LV 9 behavior when opening references to vis. The way I understand it, LV9 looks up vis using the absolute path on the disk where they came from when opening references, even if they are in memory. If just a vi name is given, LV9 tacks on the path of the referring vi on disk when trying to open the reference. So, as far as I can see, either an application opening references to vis needs to specify absolute paths to the location on disk and be modified whenever a dynamically called vi's location on disk is changed, or a dynamically called vi has to be saved in the same directory as the vi doing the calling or in a rigid and inflexible directory structure.
Example:
I am trying to use a 3rd party library whose vis open a reference to a vi that I create, the name of which is obtained from those in memory using a name pattern. The library vis get the name of the vi I created and try to open a reference to it. Previously this worked because LV looked in memory for "my.vi" when opening the reference but this fails with LV9 because it apparently looks for, e.g., "D:\VI\3rdparty.llb\my.vi", not "my.vi". So, as far as I can see, I have to save my.vi in 3rdparty.llb in order to use it. And, if I want to use 3rdparty.llb in another application, I have to save other vis to 3rdparty.llb or create a new copy elsewhere and save to that copy for the new application. A similar situation would occur if I passed the name of my vi to the 3rdparty.llb vis - either I would need to pass an absolute path and modify my application if I ever want to move my.vi, or save it in 3rdparty.llb.
Another example:
I have a large application built into an executable that calls up to ca. 60 vis using references. Previously I could just specify the path to the executable, and I could easily open references to my vis. Now (if I try to use the LV 9 file structure), I can't figure out the paths I need to open references. Either I have to specify the absolute path to the original location in my development directories, or I have to store all my source vis in some particular directory structure. If I want to reuse my vis in other applications (which I do) things would get pretty complicated. Likewise if I want to optionally open references in other vis than my top level vi (which I do), it seems well nigh impossible.
Basically I am struggling with the concept that an application remembers the directory structure where the source files were located, and/or depends on a particular directory structure of the source files to work. Maybe I'm missing some tricks that would make things easier, but someone will have to explain to me why these are good things.I appreciate the responses and explanations. I've certainly learned
some things. I have extensive experience using LV but over a fairly
narrow set of
applications so I'm certainly not aware of many of the possible
techniques. I clearly don't use LV in the same way as what appears to
be the mainstream for LV programmers.
I have some additional
comments on the various responses:
"But
with VI libraries and LVOOP this had the problem that multiple VIs could
end up with the same name..."
I'm not clear what this means exactly. My first response would be
that it doesn't seem like a good idea in general to use different
portions of code with the same name in a single application. I'm
surprised this is even possible. I don't think LV will even let me
build from a project in which it finds name conflicts for vis.
"In addition to what Rolf wrote, it should be
pointed out that LV should NOT be looking for files if you built your
app correctly. Each VI maintains a relative path to all VI it calls and
it should know exactly where to find them (assuming they're there).
I think this illustrates one thing I was talking about. The
assumption appears to be that the organization of your source files is
an essential ingredient in the application that is built, which is a
foreign concept to me. My project file knows where all my vis are, the
applications build correctly, and, using the 8.x and previous file
structure for my exe, they work, and have for some time. As far as I'm
concerned the main point of using a project that identifies my source
files is to be able to pull in code from different places - if I want to
use a different version of one of my dynamically called subvis, from a
different location, for example, I tell the project file to use the new
version and rebuild. In your scenario, as I understand it, I'm not sure
why a project file in which you identify source files is even needed,
if LV already knows everything about the components of the application
you're building. As I mentioned, my primary application uses ca. 60
dynamically called vis. Most of these control different subsystems of a
large distributed hardware control and data acquisition system. All of
these are used sometimes when the application is used, but pretty much
never all of them at once - typically something like 10-30 of the
user-interactive vis are run at once. There is some communication
between them using globals, queues, and semaphores and such, but for the
most part they are independent and I test them separately. Until the
application is built and used, there is no need to run the entire
application including all subvis, and I never do it. When I build my
application, the app builder finds all the vis I specify and constructs
the exe file including all the vis I've told it about. Before LV 9 it
never occurred to me that I might actually have to worry about being
able to find vis inside the executable.
"However as tst has mentioned having an
executable search for VIs is a VERY VERY bad idea as it can break your
entire app if it happens to find the wrong VI at some point."
I don't really follow this point at all. Where are these vis
masquerading as the ones I want that will break my application? The only
vis on the machines where my applications are used are there because I
put them there inside the executables. I certainly would never use
different vis with the same name in an application - as I said above, I
don't even know if it is possible, and don't want to find out. Search
paths to find components like shared libraries are a common thing. It
doesn 't seem like a stretch for the run-time environment to define a
default search path like "somewhere in the exe file containing the
application".
I don't want to make a mountain out of a mole hill here, as I said
before, I am happy as long as NI supports the 8.x file structure, but if
nothing else I have definitely learned to appreciate how different
executables built w/ labview are from executables constructed in other
systems. -
How to view the code/logic for the built-in oracle functions
Hi,
How can we view the logic behind the oracle supplied built-in functions like LAST_DAY , MONTHS_BETWEEN etc.,
I tried to view the same using the sys.STANDARD package , the observations are given below
function LAST_DAY(RIGHT DATE) return DATE;
pragma BUILTIN('LAST_DAY',38, 12, 12); -- PEMS_DATE, DATE_LAST_DAY
pragma FIPSFLAG('LAST_DAY', 1450);
Regards
LokHow can we view the logic behind the oracle supplied built-in functions like LAST_DAY , MONTHS_BETWEEN etc., You cannot. These built-ins, are 'built-in'.... As far as I know they are implemented in Oracle's kernel, as C code.
-
I need a logic for the version management report
HI
Here with sending my req. Please give me the posible solution,its urgent,
1. Get all the objects included in a transport request by using function module
/DGN/ITC_TRANSPORT_TO_OBJECT.
2. Find the Objects which have the versions maintained in SAP.
3. Find the date on which the Transport request was released.
4. Find the date on which the object was changed.
5. Compare the date the TP was released and the date on which the object was changed, to find out the version of the object on the date when the Transport was released.
Output: Transport Request Number, Object Name, Object Type and Version
Thank you
sriniI can explain you the full logic of this FM but before that i would like to know if you are working for Data Domain?
Thanks
Yogesh Gupta
Maybe you are looking for
-
Laptop will not read any memory cards
Laptop Model: Satellite P500 (PSPE8C-026006) I have tried several times to get this memory card reader to work. At first, I tried putting in a memory stick PRO Duo with the memory stick pro adapter (so that it could read it), and I was getting a "Fil
-
XMLTRANSFORM Too large stylesheet - code buffer overflow issue
Hi All, My question is related to MSWordML generation from PLSQL stored procedure. 1. I have table, containing XSLT stylesheets for different documents 2. PLSQL stored procedure is generating dynamic content depending on some params and at the end I'
-
POP3 Sent Items not Reflecting in E72 firmware 031...
My Nokia E72 is set up my corporate pop3 & SMTP. I'm able to send & receive email but the mails are not reflecting in "SENT ITEMS" folder.
-
I am in the process of creating an itunes library with about 1200 playlists. My audio files are kept on an external hard drive, so am not worried about losing them if my Mac mini or itunes crashes. Can someone tell me if there is a way to back up th
-
'assertion failed!' error when running Lightroom
I had a lock-up the other day and had to power-off the computer which Lightroom was running. Now, Lightroom won't start in my normal user account - it will in my guest account though. I've tried removing the .plist file, the package file and the App,