Need help in  Custom functions

Hi all,
I'm very eager to know about custom function which I never heard in any other BI tools.
Can any body please explain ,
How this custom functions work..?
In which scenarios we will use them?
Any example to use.
If you have any documentation regarding this, pls share with us..
Thank you,
Krishna PIngali.

Krishna,
Custom Functions work just like any other built in function.
They can be built using CR or Basic syntax.
They can be very simple or extremely complex.
The best time to use them (in my opinion) is when you have a lengthy formula that needs to be referenced multiple times... AKA code re-usability...
A simple example: <Basic Syntax>
Function AddTwoNumbers (Number1 As Number, Number2 As Number) As Number
AddTwoNumbers = (Number1 + Number2)
End Function
Once the CF has been added to the report, it can be referenced like any other function...
AddTwoNumbers(4,4)
The result is 8
HTH,
Jason

Similar Messages

  • I need help from Customer Support. Whatever this charge is on my credit card,

     He recibido un cargo de su tienda, que curiosamente he visto que se han hecho muchos cargos a diferentes personas bajo el mismo copncepto y tienda.Favor acreditarme dicho monto porque no he comprado nada con ustedes y ni tengo idea donde está Minesota.Este es mi cargo. 23/07/15323343GEEKSQUAD RENE00015826 RICHFIELD UUSRD$1,428.010.00 Y veo en Internet que otros clientes han hecho reclamos del mismo concepto.   Subject Author PostedGEEKSQUAD RENE00015826Care‎03-09-2015 06:30 PMGEEKSQUAD RENE00015826 Unknown ChargePriscillaQ‎12-29-2014 10:08 PMrandom 10 dollar charge from richfield MN to my ac...ChrisBurns‎07-01-2015 12:50 PMUnknown Geeksquad charge on my Credit CardHardingR‎12-01-2014 05:57 PMGeekSquad protection terms changed without being i... Lo que me hace pensar que algo anda muy mal en ese Best Buy.  Como es posible que no hayan corregido e identificado quienes están detrás de este fraude que lleva años. I need help from Customer Support.  Whatever this charge is on my credit card,jesmann‎10-05-2014 04:52 PM  

    Hola scj2000-
    Muchas gracias por visitar nuestro foro en búsqueda de una explicación al cargo que recién apareció en tu tarjeta de crédito.
    Entiendo su preocupación, ya que cualquier cargo extraño que aparece en un estado de cuenta puede ser alarmante. En este caso, el último cargo que puede recuperar usando el correo electrónico que usaste para registrarte al foro, refleja que se renovó un antivirus Kaspersky. Esta autorización nos diste cuando realizaste la compra de tu Lenovo, desde entonces se renueva automáticamente la licencia de antivirus.
    Las otras publicaciones que has leído, indican lo mismo. Un cargo que se ha hecho a la tarjeta de crédito que se presentó durante la compra con la autorización del cliente.
    Lamento mucho la confusión y espero esto aclare tu duda.
    Atentamente,

  • Help on custom function...

    Hi all
    I'm having a problem with this custom function/report posted on TechNet while back for ConfigMgr 2007
    http://social.technet.microsoft.com/wiki/contents/articles/7870.sccm-2007-create-report-of-upcoming-maintenance-windows-by-client.aspx
    I've made the needed changes according to this blog post:
    https://sccmfaq.wordpress.com/2013/08/22/sccm-2012-show-next-effective-maintenance-window/
    ..but when using maintenance windows that occurs for example 1st tuesday of every 1 months, the function returns the date week ahead. For example now (on 28th of Feb) next maintenance window should be on Tuesday March 3rd, but instead the report is showing
    Tuesday March 10th.
    Any help on modifying the function would be appreciated, I saw that there comments on the original post about the recurrence type 4 (monthly by weekday as noted here https://msdn.microsoft.com/en-us/library/cc143300.aspx) not working correctly in the function.
    It seems that the function now returns the weekday of first full week of the month instead of the correct day.
    The function is this:
    CREATE FUNCTION [dbo].[SCCM_GetNextServiceWindow](@ScheduleToken AS CHAR(16), @RecurrenceType AS INT) RETURNS @NextServiceWindow TABLE (ScheduleToken CHAR(16), RecurrenceType INT, NextServiceWindow DATETIME, Duration INT, IsGMTTime BIT) AS BEGIN
    --1 Occurs on 1/1/2012 12:00 AM 00011A8500080000
    --2 Occurs every 3 day(s) effective 1/1/2012 8:00 PM 02811A8040100018
    --3 Occurs every 3 week(s) on Saturday effective 1/1/2012 8:00 PM 02811A80401F6000
    --3 Occurs every 1 week(s) on Saturday effective 1/1/2012 8:00 PM 02811A80401F2000
    --5 Occurs day 2 of every 2 month(s) effective 1/1/2012 8:00 PM 02811A8040288800
    --5 Occurs day 31 of every 1 month(s) effective 1/1/2012 8:00 PM 02811A80402FC400
    --5 Occurs the last day of every 3 months effective 1/1/2012 8:00 PM 02811A8040280C00
    --5 Occurs the last day of every 1 months effective 1/1/2012 8:00 PM 02811A8040280400
    --4 Occurs the Third Monday of every 1 month(s) effective 1/1/2012 4:00 AM 00811A9E08221600
    --4 Occurs the Last Wednesday of every 1 month(s) effective 1/1/2012 8:00 PM 02811A8040241000
    --4 Occurs the Fourth Wednesday of every 1 month(s) effective 1/1/2012 8:00 PM 02811A8040241800
    --4 Occurs the Last Monday of every 1 month(s) effective 1/1/2012 8:00 PM 02811A8040221000
    --3 Occurs every 1 week(s) on Monday effective 1/1/2012 4:00 AM 00811A9E081A2000
    -- http://msdn.microsoft.com/en-us/library/cc143300.aspx [This link is external to TechNet Wiki. It will open in a new window.]
    DECLARE @RecurrenceType_NONE INT
    , @RecurrenceType_DAILY INT
    , @RecurrenceType_WEEKLY INT
    , @RecurrenceType_MONTHLYBYWEEKDAY INT
    , @RecurrenceType_MONTHLYBYDATE INT
    SELECT @RecurrenceType_NONE = 1
    , @RecurrenceType_DAILY = 2
    , @RecurrenceType_WEEKLY = 3
    , @RecurrenceType_MONTHLYBYWEEKDAY = 4
    , @RecurrenceType_MONTHLYBYDATE = 5
    -- http://msdn.microsoft.com/en-us/library/cc143505.aspx [This link is external to TechNet Wiki. It will open in a new window.]
    --DECLARE @RecurrenceType INT; SET @RecurrenceType = @RecurrenceType_WEEKLY
    --DECLARE @ScheduleToken CHAR(16); SET @ScheduleToken = '00811A9E081A2000'
    DECLARE @ScheduleStartTime INT; SET @ScheduleStartTime = CAST(CONVERT(BINARY(4), LEFT(@ScheduleToken, 8), 2) AS INT)
    DECLARE @ScheduleDuration INT; SET @ScheduleDuration = CAST(CONVERT(BINARY(4), RIGHT(@ScheduleToken, 8), 2) AS INT)
    -- Duration is in minutes
    DECLARE @Duration INT; SET @Duration = @ScheduleStartTime % POWER(2, 6)
    -- Calculate the start time
    DECLARE @StartTime DATETIME; SET @StartTime = CONVERT(DATETIME, '01/01/1970 00:00:00')
    SET @StartTime = DATEADD(YEAR, (@ScheduleStartTime / POWER(2,6)) % POWER(2, 6), @StartTime)
    SET @StartTime = DATEADD(MONTH, ((@ScheduleStartTime / POWER(2,12)) % POWER(2, 4)) - 1, @StartTime)
    SET @StartTime = DATEADD(DAY, ((@ScheduleStartTime / POWER(2,16)) % POWER(2, 5)) - 1, @StartTime)
    SET @StartTime = DATEADD(HOUR, (@ScheduleStartTime / POWER(2,21)) % POWER(2, 5), @StartTime)
    SET @StartTime = DATEADD(MINUTE, (@ScheduleStartTime / POWER(2,26)) % POWER(2, 5), @StartTime)
    -- Determinte UTC and Flags
    DECLARE @IsGMTTime BIT; SET @IsGMTTime = CAST(@ScheduleDuration % POWER(2, 1) AS BIT)
    DECLARE @Flags INT; SET @Flags = (@ScheduleDuration / POWER(2,19)) % POWER(2, 3)
    -- Calculate the total duration in minutes
    SET @Duration = @Duration + ((@ScheduleDuration / POWER(2,22)) % POWER(2, 5)) * 24 * 60 -- DAYS
    SET @Duration = @Duration + ((@ScheduleDuration / POWER(2,27)) % POWER(2, 5)) * 60 -- HOURS
    DECLARE @Now DATETIME
    IF @IsGMTTime = 1 BEGIN
    SET @Now = GETUTCDATE()
    END ELSE BEGIN
    SET @Now = GETDATE()
    END
    DECLARE @NextMaintenanceWindow DATETIME
    IF @RecurrenceType = @RecurrenceType_NONE BEGIN
    IF DATEADD(MINUTE, @Duration, @StartTime) > @Now BEGIN
    SET @NextMaintenanceWindow = @StartTime
    END
    END ELSE IF @RecurrenceType = @RecurrenceType_DAILY BEGIN
    IF DATEADD(MINUTE, @Duration, @StartTime) > @Now BEGIN
    SET @NextMaintenanceWindow = @StartTime
    END ELSE BEGIN
    -- Calculate the daily interval in minutes
    DECLARE @DailyInterval INT
    SET @DailyInterval = ((@ScheduleDuration / POWER(2,3)) % POWER(2, 5)) * 24 * 60
    SET @DailyInterval = @DailyInterval + ((@ScheduleDuration / POWER(2,8)) % POWER(2, 5)) * 60
    SET @DailyInterval = @DailyInterval + (@ScheduleDuration / POWER(2,13)) % POWER(2, 6)
    -- Calculate the total number of completed intervals
    DECLARE @DailyNumberOfCompletedIntervals INT; SET @DailyNumberOfCompletedIntervals = ROUND(CAST(DATEDIFF(MINUTE, @StartTime, @Now) AS DECIMAL) / @DailyInterval, 0, 0)
    -- Calculate the next interval
    DECLARE @DailyNextInterval DATETIME; SET @DailyNextInterval = DATEADD(MINUTE, @DailyNumberOfCompletedIntervals * @DailyInterval, @StartTime)
    -- Recalc the next interval if the next interval plus the expected duration is in the past
    IF DATEADD(MINUTE, @Duration, @DailyNextInterval) < @Now BEGIN
    SET @DailyNextInterval = DATEADD(MINUTE, (@DailyNumberOfCompletedIntervals + 1) * @DailyInterval, @StartTime)
    END
    SET @NextMaintenanceWindow = @DailyNextInterval
    END
    END ELSE IF @RecurrenceType = @RecurrenceType_WEEKLY BEGIN
    DECLARE @WeeklyInterval INT; SET @WeeklyInterval = (@ScheduleDuration / POWER(2,13)) % POWER(2, 3)
    DECLARE @WeeklyDoW INT; SET @WeeklyDoW = (@ScheduleDuration / POWER(2,16)) % POWER(2, 3)
    -- Adjust the start time to match the next day of week that matches the interval
    DECLARE @WeeklyStartTime DATETIME; SET @WeeklyStartTime = DATEADD(DAY, (7 - DATEPART(WEEKDAY, @StartTime) + @WeeklyDoW % 7), @StartTime)
    IF DATEADD(MINUTE, @Duration, @WeeklyStartTime) > @Now BEGIN
    SET @NextMaintenanceWindow = @WeeklyStartTime
    END ELSE BEGIN
    -- Calculate the total number of completed intervals
    DECLARE @WeeklyNumberOfCompletedIntervals INT; SET @WeeklyNumberOfCompletedIntervals = ROUND(CAST(DATEDIFF(WEEK, @WeeklyStartTime, @Now) AS DECIMAL) / @WeeklyInterval, 0, 0)
    -- Calculate the next interval
    DECLARE @WeeklyNextInterval DATETIME; SET @WeeklyNextInterval = DATEADD(WEEK, @WeeklyNumberOfCompletedIntervals * @WeeklyInterval, @WeeklyStartTime)
    -- Recalc the next interval if the next interval plus the expected duration is in the past
    IF DATEADD(MINUTE, @Duration, @WeeklyNextInterval) < @Now BEGIN
    SET @WeeklyNextInterval = DATEADD(WEEK, (@WeeklyNumberOfCompletedIntervals + 1) * @WeeklyInterval, @WeeklyStartTime)
    END
    SET @NextMaintenanceWindow = @WeeklyNextInterval
    END
    END ELSE IF @RecurrenceType = @RecurrenceType_MONTHLYBYWEEKDAY BEGIN
    DECLARE @MonthlyBWWeek INT; SET @MonthlyBWWeek = (@ScheduleDuration / POWER(2,9)) % POWER(2, 3)
    DECLARE @MontlhyBWInterval INT; SET @MontlhyBWInterval = (@ScheduleDuration / POWER(2,12)) % POWER(2, 4)
    DECLARE @MonthlyBWDoW INT; SET @MonthlyBWDoW = (@ScheduleDuration / POWER(2,16)) % POWER(2, 3)
    -- Calculate the total number of completed intervals
    DECLARE @MonthlyBWNumberOfCompletedIntervals INT; SET @MonthlyBWNumberOfCompletedIntervals = ROUND(CAST(DATEDIFF(MONTH, @StartTime, @Now) AS DECIMAL) / @MontlhyBWInterval, 0, 0)
    IF @MonthlyBWWeek = 0 BEGIN
    -- Calculate the next interval
    DECLARE @MonthlyBWLDOMNextInterval DATETIME; SET @MonthlyBWLDOMNextInterval = DATEADD(MONTH, @MonthlyBWNumberOfCompletedIntervals * @MontlhyBWInterval, @StartTime)
    -- Calculate last day of month
    SET @MonthlyBWLDOMNextInterval = DATEADD(DAY, DATEDIFF(DAY, @MonthlyBWLDOMNextInterval, DATEADD(DAY, -1, DATEADD(M, DATEDIFF(MONTH, 0, @MonthlyBWLDOMNextInterval) + 1, 0))), @MonthlyBWLDOMNextInterval)
    -- Calculate the last day of the week for the month
    SET @MonthlyBWLDOMNextInterval = DATEADD(DAY, -(7 - DATEPART(WEEKDAY, @MonthlyBWLDOMNextInterval) + @MonthlyBWDoW % 7), @MonthlyBWLDOMNextInterval)
    IF DATEADD(MINUTE, @Duration, @MonthlyBWLDOMNextInterval) < @Now BEGIN
    -- Recalc for the next month interval
    SET @MonthlyBWLDOMNextInterval = DATEADD(MONTH, (@MonthlyBWNumberOfCompletedIntervals + 1) * @MontlhyBWInterval, @StartTime)
    -- Calculate last day of month
    SET @MonthlyBWLDOMNextInterval = DATEADD(DAY, DATEDIFF(DAY, @MonthlyBWLDOMNextInterval, DATEADD(DAY, -1, DATEADD(M, DATEDIFF(MONTH, 0, @MonthlyBWLDOMNextInterval) + 1, 0))), @MonthlyBWLDOMNextInterval)
    -- Calculate the last day of the week for the month
    SET @MonthlyBWLDOMNextInterval = DATEADD(DAY, -(7 - DATEPART(WEEKDAY, @MonthlyBWLDOMNextInterval) + @MonthlyBWDoW % 7), @MonthlyBWLDOMNextInterval)
    END
    SET @NextMaintenanceWindow = @MonthlyBWLDOMNextInterval
    END ELSE BEGIN
    -- Calculate the next interval
    DECLARE @MonthlyBWNextInterval DATETIME; SET @MonthlyBWNextInterval = DATEADD(MONTH, @MonthlyBWNumberOfCompletedIntervals * @MontlhyBWInterval, @StartTime)
    -- Set the date to the first day of the month
    SET @MonthlyBWNextInterval = DATEADD(DAY, -(DAY(@MonthlyBWNextInterval) - 1), @MonthlyBWNextInterval)
    -- Set the date to the first day of week in the month
    SET @MonthlyBWNextInterval = DATEADD(DAY, (7 - DATEPART(WEEKDAY, @MonthlyBWNextInterval) + @MonthlyBWDoW) % 7, @MonthlyBWNextInterval)
    -- Calculate date based on the week number to add
    SET @MonthlyBWNextInterval = DATEADD(WEEK, @MonthlyBWWeek-1, @MonthlyBWNextInterval)
    IF DATEADD(MINUTE, @Duration, @MonthlyBWNextInterval) < @Now BEGIN
    -- Recalc for the next month interval
    SET @MonthlyBWNextInterval = DATEADD(MONTH, (@MonthlyBWNumberOfCompletedIntervals + 1) * @MontlhyBWInterval, @StartTime)
    -- Set the date to the first day of the month
    SET @MonthlyBWNextInterval = DATEADD(DAY, -(DAY(@MonthlyBWNextInterval) - 1), @MonthlyBWNextInterval)
    -- Set the date to the first day of week in the month
    SET @MonthlyBWNextInterval = DATEADD(DAY, (7 - DATEPART(WEEKDAY, @MonthlyBWNextInterval) + @MonthlyBWDoW % 7), @MonthlyBWNextInterval)
    -- Calculate date based on the week number to add
    SET @MonthlyBWNextInterval = DATEADD(WEEK, @MonthlyBWWeek-1, @MonthlyBWNextInterval)
    END
    SET @NextMaintenanceWindow = @MonthlyBWNextInterval
    END
    END ELSE IF @RecurrenceType = @RecurrenceType_MONTHLYBYDATE BEGIN
    DECLARE @MontlhyBDInterval INT; SET @MontlhyBDInterval = (@ScheduleDuration / POWER(2,10)) % POWER(2, 4)
    DECLARE @MonthlyBDDoM INT; SET @MonthlyBDDoM = (@ScheduleDuration / POWER(2,14)) % POWER(2, 5)
    IF @MonthlyBDDoM = 0 BEGIN
    /* This is the last day of month logic */
    -- Calculate the total number of completed intervals
    DECLARE @MonthlyBDLDOMNumberOfCompletedIntervals INT; SET @MonthlyBDLDOMNumberOfCompletedIntervals = ROUND(CAST(DATEDIFF(MONTH, @StartTime, @Now) AS DECIMAL) / @MontlhyBDInterval, 0, 0)
    -- Calculate the next interval
    DECLARE @MonthlyBDLDOMNextInterval DATETIME; SET @MonthlyBDLDOMNextInterval = DATEADD(MONTH, @MonthlyBDLDOMNumberOfCompletedIntervals * @MontlhyBDInterval, @StartTime)
    -- Calculate last day of month
    SET @MonthlyBDLDOMNextInterval = DATEADD(DAY, DATEDIFF(DAY, @MonthlyBDLDOMNextInterval, DATEADD(DAY, -1, DATEADD(M, DATEDIFF(MONTH, 0, @MonthlyBDLDOMNextInterval) + 1, 0))), @MonthlyBDLDOMNextInterval)
    -- Recalc the next interval if the next interval plus the expected duration is in the past
    IF DATEADD(MINUTE, @Duration, @MonthlyBDLDOMNextInterval) < @Now BEGIN
    SET @MonthlyBDLDOMNextInterval = DATEADD(DAY, DATEDIFF(DAY, @MonthlyBDLDOMNextInterval, DATEADD(DAY, -1, DATEADD(M, DATEDIFF(MONTH, 0, DATEADD(MONTH, (@MonthlyBDLDOMNumberOfCompletedIntervals + 1) * @MontlhyBDInterval, @StartTime)) + 1, 0))), @MonthlyBDLDOMNextInterval)
    END
    SET @NextMaintenanceWindow = @MonthlyBDLDOMNextInterval
    END ELSE BEGIN
    -- Check to make sure we won't loop forever if more than 31 days some how ends up in the token
    IF @MonthlyBDDoM > 31 SET @MonthlyBDDoM = 31
    -- Adjust the start time to match the next day of month that matches the interval
    DECLARE @MonthlyBDStartTime DATETIME; SET @MonthlyBDStartTime = DATEADD(DAY, (31 - DATEPART(DAY, @StartTime) + @MonthlyBDDoM % 31), @StartTime)
    -- This loop is used multiple times to search for the next valid date that falls on the desired day of month
    WHILE(DATEPART(DAY, @MonthlyBDStartTime) <> @MonthlyBDDoM) BEGIN
    SET @MonthlyBDStartTime = DATEADD(DAY, (31 - DATEPART(DAY, @MonthlyBDStartTime) + @MonthlyBDDoM) % 31, @MonthlyBDStartTime)
    END
    IF DATEADD(MINUTE, @Duration, @MonthlyBDStartTime) > @Now BEGIN
    SET @NextMaintenanceWindow = @MonthlyBDStartTime
    END ELSE BEGIN
    -- Calculate the total number of completed intervals
    DECLARE @MonthlyBDNumberOfCompletedIntervals INT; SET @MonthlyBDNumberOfCompletedIntervals = ROUND(CAST(DATEDIFF(MONTH, @MonthlyBDStartTime, @Now) AS DECIMAL) / @MontlhyBDInterval, 0, 0)
    -- Calculate the next interval
    DECLARE @MonthlyBDNextInterval DATETIME; SET @MonthlyBDNextInterval = DATEADD(MONTH, @MonthlyBDNumberOfCompletedIntervals * @MontlhyBDInterval, @MonthlyBDStartTime)
    WHILE(DATEPART(DAY, @MonthlyBDNextInterval) <> @MonthlyBDDoM) BEGIN
    SET @MonthlyBDNextInterval = DATEADD(DAY, (31 - DATEPART(DAY, @MonthlyBDNextInterval) + @MonthlyBDDoM % 31), @MonthlyBDNextInterval)
    END
    -- Recalc the next interval if the next interval plus the expected duration is in the past
    IF DATEADD(MINUTE, @Duration, @MonthlyBDNextInterval) < @Now BEGIN
    SET @MonthlyBDNextInterval = DATEADD(MONTH, (@MonthlyBDNumberOfCompletedIntervals + 1) * @MontlhyBDInterval, @MonthlyBDNextInterval)
    WHILE(DATEPART(DAY, @MonthlyBDNextInterval) <> @MonthlyBDDoM) BEGIN
    SET @MonthlyBDNextInterval = DATEADD(DAY, (31 - DATEPART(DAY, @MonthlyBDNextInterval) + @MonthlyBDDoM % 31), @MonthlyBDNextInterval)
    END
    END
    SET @NextMaintenanceWindow = @MonthlyBDNextInterval
    END
    END
    END
    INSERT INTO @NextServiceWindow VALUES (@ScheduleToken, @RecurrenceType, @NextMaintenanceWindow, @Duration, @IsGMTTime)
    RETURN
    END
    Thanks in advance for any suggestions!

    What an ungodly amount of the code for the task!
    I tried
    SELECT * FROM SCCM_GetNextServiceWindow('00811A9E08221600', 4)
    Which is said mean "Occurs the Third Monday of every 1 month(s)" and it returned 2015-03-17. Which is a Tuesday. But it is the third Tuesday.
    Turns out that I have British settings on that instance, DATEFIRST is 1. If do SET DATEFIRST 7, I get 2015-03-23. Which is a Monday, but the wrong one.
    The current setting of DATEFIRST can be detected with @@DATEFIRST, and that would make the code even more complex.
    My gut reaction would be to start over and do it all in C#, where at least I don't have to bother about SET DATEFIRST.
    Or maybe first inspect that the ScheduleToken is correct. Maybe it is, but to me that is just an incomprehensible hex string.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Need Help updating custom API Interface to VME-MXI-2

    Need Help.
    I have a custom Visual C++ 6.0 application that interfaces to the VME-MXI-2 card.
    This interface works on older machines, but when we upgrade to new PC's, the interface works, yet it appears that communication exists between the hardware board, and the PC Card appears to be working properly.
    I suspect that the drivers have a different interface, but need the interface documentation in order to verify this, can you help?
    Older machines use: PCI-MXI-2, and the driver is: C:\Windows\System32\Drivers\vvxid.sys (File version 1.2) cpright 1996-2000
    Newer machine has: PCI-MXI-2, and the driver is: C:\Windows\System32\Drivers\nipalk.sys (File version 1.61f0) cpright 2002

    Alan,
    As for reading and writing memory addresses from the VME memory map, you could use functions such as viIn8, viIn16, viIn32, viOut8, viOut16, or viOut32 in the NI-VISA API. You can find the NI-VISA Funtion help at "Start >> Programs >> National Instruments >> NI-VISA >> NI-VISA Help" for Windows. Alternativelly, the NI-VISA Programmers Reference Manual is available for download from ni.com.
    What exactly is your application that uses ACFAIL? ACFAIL is typically pretty unrealiable, and is a difficult signal to catch (especially over a bus extension like MXI-2). Basically, ACFAIL is asserted right before a total failure/shutdown of the chassis, so you have a very short window of time to detect the signal before it disappears.
    Regards,
    Greg Caesar
    App
    lications Engineer
    National Instruments

  • Need help in customizing workflow

    Hi All,
    Need your help in customizing APINVAPR workflow.
    Please help in clarifying below point.
    How APINVAPR is mapped to invoice approval process,for PO we use document type form to map the POAPPRV workflows when we customize we will map the custom workflow XXXPOAPPRV to make our workflow work.
    Similarly how will we customize APINVAPR and map the workflow, pls let me know your thoughts.
    My requirement is to customize the APINVAPR workflow and increase the escalation days, during the Invoice Approval Process/Escalate Document Approval activity escalation will happen in 5 days, i need to increase it by 60 days.
    If anyone have worked in similar requirement, please help.
    Also while downloading getting following error
    While downloading workflow APINVAPR, getting below errors
    Item type APINVAPR
    wferr:
    - 1300: Could not load.
    - 1114: Could not load from database.
    - 1115: Could not load all definitions referenced by 'APINVAPR' item type.
    - 1115: Could not load contents of 'APINVAPR' item type.
    - 1101: Could not load item types from database. FILTER=APINVAPR
    - 210: Oracle Error: ORA-01480: trailing null missing from STR bind value. SQL text: SELECT protect_level, custom_level, name, display_name, description, wf_selector, read_role, write_role, execute_role, persistence_type, to_char(persistence_days) FROM wf_item_types_vl WHERE name like :itemtype ORDER BY name
    But it was fine when i downlaod POAPPRV.
    Any one face similar kind of issues, please help.
    Thanks
    Badsha

    Hello,
    I am also getting the same error.
    WFLOAD apps/apps 0 Y DOWNLOAD file_name.wft INVADJTO
    Item type INVADJTOwferr:
    - 1300: Could not load.
    - 1114: Could not load from database.
    - 1115: Could not load all definitions referenced by 'INVADJTO' item type.
    - 1115: Could not load contents of 'INVADJTO' item type.
    - 1101: Could not load item types from database. FILTER=INVADJTO
    - 210: Oracle Error: ORA-01480: trailing null missing from STR bind value. SQ L text: SELECT protect_level, custom_level, name, display_name, description, wf_selector, read_role, write_role, execute_role, persistence_type, t o_char(persistence_days) FROM wf_item_types_vl WHERE name like :itemtype ORDE R BY name
    The item type exists in system. It is a seeded one.
    Can anyone help on this !!!
    Thanks

  • I need help in Custom Reporting

    Hi,
    i need help in auditing, SCOM 2012 R2 is deployed in 2 servers with ACS, i have 2 file server that has some shared folder in which users work on some certain document i need to have a report that i can run on certain file that will show me who access that
    file when he access what he did like (read write, delete). i don't think we have this type of capability in default report. let me know if someone can help me in that. (free/paid) i know its a bit customized. let me know if u need any more info.
    Syed Kasif

    Hi,
    As far as I know, to audit file access, we should Enable Audit Policy, and then Set up Audit System Access Control List (SACL).
    After that, we can make sure that under security event logs there are auditing logs for file access.
    Please refer to the below link for more details about auditing file access on file server:
    http://blogs.technet.com/b/mspfe/archive/2013/08/27/auditing-file-access-on-file-servers.aspx
    And for Collecting Security Events Using Audit Collection Services in Operations Manager:
    http://technet.microsoft.com/en-us/library/hh212908.aspx
    Regards,
    Yan Li
    Regards, Yan Li

  • Need Help: Generate Customer Data from Prod Database

    Hi All,
    My company have an Oracle Financial System, with and old version Oracle Application 11.0.3 and Oracle Database 8.0.5. The database name PROD. This system has been use for more than 7 years and in between there were many stuff resigned without handover and therefore many records and supporting steps cannot be trace back. However the system is still keep running and updated daily.
    Recently we have a user request to generate out a list of customer company name, and their related products purchase from the database, this is because they does not have any methods to print out the list from application. Unfortunately, we do not know which tables or index is actualy storing the name of the customer and products. We have the list of below users accounts that able to log in to the database.
    PA/PA
    APPLSYS/APPS
    APPS/APPS
    ALR/ALR
    AX/AX
    AK/AK
    GL/GLRG/RG
    FA/FAHR/HR
    SSP/SSP
    HXT/HXT
    OTA/OTA
    RLA/RLA
    VEH/VEH
    QA/QA
    ICX/ICX
    AZ/AZ
    AP/AP
    AR/AR
    OE/OE
    OSM/OSM
    NSM/NSM2020
    CN/CN
    MFG/MFG
    INV/INV
    PO/PO
    BOM/BOM
    ENG/ENG
    MRP/MRP
    CRP/CRP
    WIP/WIP
    CZ/CZ
    PJM/PJM
    FLM/FLM
    MSC/MSC
    CS/CS
    CE/CE
    EC/EC
    JG/JG
    APPS/APPS
    All the reference documents is no longer exist. I am able to use SQL Plus to generate the list of tables with the command : select table_name from user_tables. Each user accounts will return different kind of table names. But still I cant locate which table that actually storing the name of the customers and products.
    Is that anybody got hands on this case before? Urgent

    We have this table: And need to unload this table data in flat file format.
    Need help with unload SQL file with these two columns:
    AMT_PAID_ORIG, AMT_PAID_ADJ
    SQL> desc flconv.claim_adj_less
    Name Null? Type
    SAK_CLAIM_ADJ_LESS NUMBER(10)
    SAK_CLAIM_ADJ NUMBER(10)
    ADJ_CLAIM_ICN NUMBER(13)
    ORIGINAL_CLAIM_ICN NUMBER(13)
    DATE_PAID_ORIG NUMBER(8)
    DATE_PAID_ADJ NUMBER(8)
    AMT_PAID_ORIG NUMBER(10,2)
    AMT_PAID_ADJ NUMBER(10,2)
    SAK_PROV_LOC NUMBER(9)
    SAK_FUND_CODE NUMBER(9)
    CHECK_SAK NUMBER(9)
    SAK_PUB_HLTH NUMBER(9)

  • I need help with Analytic Function

    Hi,
    I have this little problem that I need help with.
    My datafile has thousands of records that look like...
    Client_Id Region Countries
    [1] [1] [USA, Canada]
    [1] [2] [Australia, France, Germany]
    [1] [3] [China, India, Korea]
    [1] [4] [Brazil, Mexico]
    [8] [1] [USA, Canada]
    [9] [1] [USA, Canada]
    [9] [4] [Argentina, Brazil]
    [13] [1] [USA, Canada]
    [15] [1] [USA]
    [15] [4] [Argentina, Brazil]
    etc
    My task is is to create a report with 2 columns - Client_Id and Countries, to look something like...
    Client_Id Countries
    [1] [USA, Canada, Australia, France, Germany, China, India, Korea, Brazil, Mexico]
    [8] [USA, Canada]
    [9] [USA, Canada, Argentina, Brazil]
    [13] [USA, Canada]
    [15] [USA, Argentina, Brazil]
    etc.
    How can I achieve this using Analytic Function(s)?
    Thanks.
    BDF

    Hi,
    That's called String Aggregation , and the following site shows many ways to do it:
    http://www.oracle-base.com/articles/10g/StringAggregationTechniques.php
    Which one should you use? That depends on which version of Oracle you're using, and your exact requirements.
    For example, is order importatn? You said the results shoudl include:
    CLIENT_ID  COUNTRIES
    1        USA, Canada, Australia, France, Germany, China, India, Korea, Brazil, Mexicobut would you be equally happy with
    CLIENT_ID  COUNTRIES
    1        Australia, France, Germany, China, India, Korea, Brazil, Mexico, USA, Canadaor
    CLIENT_ID  COUNTRIES
    1        Australia, France, Germany, USA, Canada, Brazil, Mexico, China, India, Korea?
    Mwalimu wrote:
    ... How can I achieve this using Analytic Function(s)?The best solution may not involve analytic functions at all. Is that okay?
    If you'd like help, post your best attempt, a little sample data (CREATE TABLE and INSERT statements), the results you want from that data, and an explanation of how you get those results from that data.
    Always say which version of Oracle you're using.
    Edited by: Frank Kulash on Aug 29, 2011 3:05 PM

  • Need Help In "Custom" TopBar Class

    New to Plumtree and need help to get rolling. Req's is simple thus far: To supress render of "Login" link in TopBarView for Guests if certain URL is captured at Request.
    There were some topics here that suggests extending from the Class PlumtreeTopBarView.CS, I just need to identify which UI part that renders the "Login" html link to supress this. I got the function to use to capture the URL string -> GetRequestURL(), I am fishing info on where or what function in PlumtreeTopBarView I need to override to plugin a condition that if this URL string == <something> then suppress "Login" link, or the Search, or whatever elements in the TopBar I need to suppress if need be??
    Is there some Help file in PT that I can reference that will enable me to find what namespace does GetRequestURL() belongs to? Please bear with me I am very new to PT code infrastructure, still trying to find stuff with strict deadlines. Much Obliged in advance...

    You just need to create your own version of PlumtreeTopBarView (original in com.plumtree.common.uiparts), and use CustomActivitySpace.xml to override that view with your own view. Your version would use some kidn fo logic to determine whether or not to display certain elements. TheUI Customization Guide should help quite a bit, and we have several quickstarts for overriding views you can start from.
    Is there some Help file in PT that I can reference that will enable me to find what namespace does GetRequestURL() belongs to?I would simply do a string compare. Tokenize the URL into the base address / control arguments, perhaps splitting on the "?" symbol; then tokenize the base address on the ".". You'll end up with three strings. For portal.plumtree.com, the three strings would portal, plumtree, and com. You can then use those string in the logig you add to PlumtreeTopBarView.
    David Phipps
    Plumtree Software

  • Need help for Customizing Correspondence Management

    Hi,
    Could anyone provide me some documents or reference links which will be helpful for Customizing Correspondence Management in ES4?
    Many Thanks!!

    Hi Santosh,
    Sorry for the late reply.
    I have a XDP file having both static and dynamic content. I need to populate the dynamic content with some value which I will be getting from the XML which is stored in the body of the SOAP request. I want the letter to be generated dynamically (like no user selection of XML etc) because I want to avoid manual input in the correspondence management.
    Could you please let me know if the above can be achieved. If yes, could you please provide any useful stuff related to above requirement.
    Many Thanks!!!

  • Need help pl/sql function body returning SQL query - Reports

    I need help with Grouping by on a report that I developed in my application.
    I have posted my Code in
    Apex.oracle.com
    workspace : c a s e _ m a n a g e m e n t
    User Id : public
    Password : public
    I need help on Page 38 Reports.
    I get blank lines when I do break by first , second and third columns on the reports attribute.
    So I think I have to write "group by " or Distinct in side the SQL query. But not sure how to do it there.
    Thank you

    Is this an APEX question, then try here:
    Oracle Application Express (APEX)
    Is this an Oracle Reports question, then try here:
    Reports
    Is this an SQL question:
    Please provide sample data and expected output. Also please show what you have tried already.

  • Need help in Custom component creation with cq

    Hi,
    I have created my own component in adobe cQ and able to drag an drop in any page. for each instance I am seeing the copy of
    component under node /content/mypage/commoncomp. If I edit the properties using design dialog  I can able to store values as
    expected.
    Need help in
    1) When I drag and drop the component it shows null for the property by deafult if I click save on edit dialog then the
    value is showing. The default value is not shown by default while drag and drop my component it requires atleast one time to
    click save from dialog using design mode
    2) I need to use the default properties of the orginal components which is root and use the duplicated properties if incase user edit the properties of duplicated component. This may be too messy.... to be more clear
    I want to use a common component in many pages but the properties of the components should be updated only when user edit it in design dialog utill then I need the page to use properties of root component.
    Thanks

    You just need to create your own version of PlumtreeTopBarView (original in com.plumtree.common.uiparts), and use CustomActivitySpace.xml to override that view with your own view. Your version would use some kidn fo logic to determine whether or not to display certain elements. TheUI Customization Guide should help quite a bit, and we have several quickstarts for overriding views you can start from.
    Is there some Help file in PT that I can reference that will enable me to find what namespace does GetRequestURL() belongs to?I would simply do a string compare. Tokenize the URL into the base address / control arguments, perhaps splitting on the "?" symbol; then tokenize the base address on the ".". You'll end up with three strings. For portal.plumtree.com, the three strings would portal, plumtree, and com. You can then use those string in the logig you add to PlumtreeTopBarView.
    David Phipps
    Plumtree Software

  • Need help with customizing standard reports in Fusion Applications

    Hi,
       I have requirement to customize 'Asset Transfer Report' in Oracle Fusion.
       This report is a BI Publisher report and Data Model lies in folder '/Share Folders/Financials/Fixed Assets/Tracking/Data Model' and report lies in folder '/Share Folders/Financials/Fixed Assets/Tracking'.
        Steps which i have completed
       I am trying to customize this report, i followed the below steps
    Step 1:- 
       Copied Data Model into '/Shared Folder/Custom/Financials/Fixed Assets/Tracking/Data Model' and report into '/Shared Folder/Custom/Financials/Fixed Assets/Tracking/'
    Step 2:-
       Opened task 'Manage Custom Enterprise Scheduler Jobs for Ledger and Related Applications' and created a job with the following details.
    Job Definition
    Field Name
    Value
    Display Name
    XX Asset Transfers Report
    Name
    XX_ASSET_TRANSFERS_REPORT
    Path
    /FA/
    Application
    Financials Common Module
    Description
    XX Asset Transfers Report
    Job Application Name
    FinancialsEss
    Enable Submission from Enterprise Manager
    Job Type
    BIPJobType
    Class Name
    oracle.xdo.service.client.scheduler.BIPJobExecutable
    Default Output Format
    Report ID
    /Custom/Financials/Fixed Assets/Tracking/Asset Transfers Report.xdo
    Priority
    Allow Multiple Pending Submissions
    False
    Enable Submission From Scheduled Processes
    Yes
    User Properties
    Field Name
    Value
    PDF
    .*\.pdf$
    jobDefinitionName
    FAS430
    XML
    .*\.xml$
    jobPackageName
    /oracle/apps/ess/financials/assets/tracking/transfers
    EXT_PortletContainerWebModule
    Ledger
    Since the standard report has the below parameter i have created same set of parameters for the Job which i have created, but i do not know how to assign the list of values to these parameters
    Parameter Prompt
    Data Type
    Page Element
    Default Value
    Required
    Book
    String
    Text box
    Yes
    Currency
    String
    Text box
    Yes
    Period
    String
    Text box
    Yes
    Batch
    String
    Text box
    No
    Step 4:-
       Now when i navigate to schedule process, when i click Schedule New Process Button in the list of values i can see the job which i created. When i submit the job is completing with error.
       When i open the xml file, file is blank and no data is available in the file.
       When i open the log file i see the below error
    dummy file is deleted
    ================ BIPJobExecutable Execution Started ============
    OutputFile : /u01/APPLTOP/instance/ess/rfd/67068/out/67068.xml
    Request ID: 67068 ClassLoader is weblogic.utils.classloaders.GenericClassLoader@1c85c3a finder: weblogic.utils.classloaders.CodeGenClassFinder@1c85cb3 annotation: FinancialsEssApp#V2.0@
    RequestId:67068
    ReportID : /Custom/Financials/Fixed Assets/Tracking/FLY FA Transfers Report.xdo
    Process : BIPDocGen
    The bipJobID : 6252
    bipJobID is updated to ESSRuntimeService
    BIP_STATUS_URL is added to ESSRuntimeService
    ================ BIPJobExecutable is running in async mode. ============
    ================ Please check the ess status for more detail info. ============
        Am i doing anything wrong while creating the job?
    Note :- I created another test data model and report with 'Select SYSDATE from dual' and am able to see the report completing successfully.
    Please kindly help, i am failing to meet my deadlines.
    Regards,
    Prasad R

    Hello Jani Rautiainen,
        Thanks a lot for replying my question.
        This is the first time i am working with the BI Publisher reports and fusion applications.
        My requirement is to add few columns to the standard report with out loosing the functionality.
        I was not aware that there is two ways of doing this, i was always copying data model and report to a new folder and trying to create a new job for the report.
        As mentioned in the document 7.2.1.4 Using the Customize Feature    , i clicked on the more button on my report but i do not see the customize option. Do i need to have any specific role for this to appear in the menu? Please kindly let me know.
        Also i see below limitations while customizing report
    Limitations
    Following are limitations of the Customize report option:
    The Customize option is only available through direct access to the BI Publisher server using the /xmlpserver URL (for example:http://hostname.com:7001/xmlpserver). The Customize option is not available through the /analytics URL used to access Oracle Business Intelligence Enterprise Edition.
    The Customize option is available only for reports. The Customize option is not available for data models, style templates, or sub templates.To customize data models, style templates or sub templates and insulate them from potential changes from patching: Make a copy of the data model, style template, or sub-template and either rename it or place it in a custom folder. Ensure that you update any reports to point to the customized data model, style template, or sub template.
        My requirement is to add few additional columns which needs Data Model to be modified, Can i copy the data model to the custom folder and do my modifications and point this data model in the report(as mentioned in the point 2 in the limitations)? In that case, will the original report submission works?
    Regards,
    Prasad R

  • Need help in customizing people screen.

    Hi HRMS Gurus,
    I am new to OA HRMS..
    I am implementing the solution for a client which requires follwing :-
    In people screen, i need one more form to appear.
    Requirement goes like this:-
    Navigate to people->Others-->End employment
    I want End employment form to come in place of Picture in the people screen and
    Picture to go inside Other and replace End employment form.
    How can I achieve this?
    Immediate help would be appreciated.
    Thanks
    Sabya

    Hi,
    thanks for ur input..but i m still stuck up here..
    actually I configured a customized form and attatched it to the node and then a responsibility by using functions.
    but i am facing some issues. The whole person and assignmed form disappears and only other form remains..
    I need to interchange End employment form and Picture form from people screen...
    Detailed steps would really help...
    regards

  • Need help with custom event from Main class to an unrelated class.

    Hey guys,
    I'm new to Flash and not great with OOP.  I've made it pretty far with google and lurking, but I've been pulling my hair out on this problem for a day and everything I try throws an error or simply doesn't hit the listener.
    I'm trying to get my Main class to send a custom event to an unrelated class called BigIcon.  The rest of the code works fine, it's just the addEventListener and dispatchEvent that isn't working.
    I've put in the relevant code in below.  Let me know if anything else is needed to troubleshoot.  Thank you!
    Main.as
    package
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        public class Main extends MovieClip
            var iconLayer_mc:MovieClip = new MovieClip();
            public function Main()
                Spin_btn.addEventListener(MouseEvent.CLICK,fl_MouseClickHandler);
                addChildAt(iconLayer_mc,0);
                placeIcons();
            function placeIcons():void
                var i:int;
                var j:int;
                for (i = 0; i < 4; i++)
                    for (j = 0; j < 5; j++)
                        //iconString_array has the names of illustrator objects that have been converted to MovieClips and are in the library.
                        var placedIcon_mc:BigIcon = new BigIcon(iconString_array[i][j],i,j);
                        iconLayer_mc.addChild(placedIcon_mc);
            function fl_MouseClickHandler(event:MouseEvent):void
                dispatchEvent(new Event("twitchupEvent",true));
    BigIcon.as
    package
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.utils.getDefinitionByName;
        public class BigIcon extends MovieClip
            private var iconImage_str:String;
            private var iconRow_int:int;
            private var iconColumn_int:int;
            public function BigIcon(iconImage_arg:String, iconRow_arg:int, iconColumn_arg:int)
                iconImage_str = iconImage_arg;
                iconRow_int = iconRow_arg;
                iconColumn_int = iconColumn_arg;
                this.addEventListener(Event.ADDED_TO_STAGE, Setup);
            function Setup(e:Event)
                this.y = iconRow_int;
                this.x = iconColumn_int;
                var ClassReference:Class = getDefinitionByName(iconImage_str) as Class;
                var thisIcon_mc:MovieClip = new ClassReference;
                this.addChild(thisIcon_mc);
                addEventListener("twitchupEvent", twitchUp);
            function twitchUp(e:Event)
                this.y +=  10;

    Ned Murphy wrote:
    You should be getting an error for the Main.as class due to missing a line to import the Event class...
    import flash.events.Event;
    My apologies, I should attempt to compile my example code before I ask for help...
    Alright, this compiles, gives me no errors, shows my 'book' and 'flowers' icons perfectly when ran, and prints 'addEventListener' to the output window as expected.  I get no errors when I press the button, 'dispatchEvent' is output (good), but the 'twitchUp' function is never called and 'EventTriggered' is never output. 
    How do I get the 'twitchUp' event to trigger?
    Main.as
    package
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        import flash.events.*;
        public class Main extends MovieClip
            var iconLayer_mc:MovieClip = new MovieClip();
            var iconString_array:Array = new Array(2);
            public function Main()
                Spin_btn.addEventListener(MouseEvent.CLICK,fl_MouseClickHandler);
                addChildAt(iconLayer_mc,0);
                buildStringArray();
                placeIcons();
            function buildStringArray():void
                var i:int;
                var j:int;
                for (i = 0; i < 2; i++)
                    iconString_array[i] = new Array(3);
                    for (j = 0; j < 3; j++)
                        if (Math.random() > .5)
                            //'flowers' is the name of an illustrator object that has been converted to a MovieClip and is in the library
                            iconString_array[i][j] = "flowers";
                        else
                            //'book' is the name of an illustrator object that has been converted to a MovieClip and is in the library
                            iconString_array[i][j] = "book";
            function placeIcons():void
                var i:int;
                var j:int;
                for (i = 0; i < 2; i++)
                    for (j = 0; j < 3; j++)
                        //iconString_array has the names of illustrator objects that have been converted to MovieClips and are in the library.
                        var placedIcon_mc:BigIcon = new BigIcon(iconString_array[i][j],i*50,j*50);
                        iconLayer_mc.addChild(placedIcon_mc);
            function fl_MouseClickHandler(event:MouseEvent):void
                dispatchEvent(new Event("twitchupEvent",true));
                trace("dispatchEvent");
    BigIcon.as
    package
        import flash.display.MovieClip;
        import flash.events.*;
        import flash.utils.getDefinitionByName;
        public class BigIcon extends MovieClip
            private var iconImage_str:String;
            private var iconRow_int:int;
            private var iconColumn_int:int;
            public function BigIcon(iconImage_arg:String, iconRow_arg:int, iconColumn_arg:int)
                iconImage_str = iconImage_arg;
                iconRow_int = iconRow_arg;
                iconColumn_int = iconColumn_arg;
                this.addEventListener(Event.ADDED_TO_STAGE, Setup);
            function Setup(e:Event)
                this.y = iconRow_int;
                this.x = iconColumn_int;
                var ClassReference:Class = getDefinitionByName(iconImage_str) as Class;
                var thisIcon_mc:MovieClip = new ClassReference;
                this.addChild(thisIcon_mc);
                addEventListener("twitchupEvent", twitchUp);
                trace("addEventListener");
            function twitchUp(e:Event)
                this.y +=  10;
                trace("EventTriggered");
    Output:
    [SWF] Untitled-1.swf - 40457 bytes after decompression
    addEventListener
    addEventListener
    addEventListener
    addEventListener
    addEventListener
    addEventListener
    dispatchEvent
    [UnloadSWF] Untitled-1.swf
    Test Movie terminated.

Maybe you are looking for

  • Help Needed for Java Project

    I have to do a project in my final year Computer Engineering. Can someone give me any ideas about project(to be done in Java)? If anyone can help me with any idea, please do so. Thank You!!

  • My US ATV in the UK isn't working properly. Can anyone advise please?

    My friend bought me an ATV from the US, but I can't seem to get it to work properly. It's plugged into a US-UK adaptor, powers up fine, got past the point where I connect to my network. It's just when I get to the main menu screen, it freezes up - st

  • ABAP API and Key Mapping

    Hello there, I am trying to use the MDM 7.1 ABAP API to access MDM data from within a BI system. Now I am wondering how to access key mapping for records in the Main Table. In the Java API there is the RetrieveRecordsKeyMappingsCommand which returns

  • Creating .jnlp files from .java files

    Last resort: Ask on the forums. I'm having a lot of trouble creating .jnlp files with only a .java file. For some reason if I do create project, the project does not run correctly, but when I make the file and run the file alone, it works perfectly f

  • Removing old emails

    After updating to OS7, I now have a mailbox full of old emails, some that were deleted years ago. I used to be able to limit the mailbox size to 50 emails. Is that option still available? If so, where is it? Apple really needs to address this questio