Right place to initialize application level items

I initilized application items on page 1 (home page for application). The normal flow for this application is the way when user gets their authentication at startup and then is normally redirected to the home page where application items are initialized.
This logic doesn't work when user gets (for example from a colleague) direct link to a particular page inside application. In that case after successfull authentication APEX redirects user to this page and my application items remain undefined.
What's the right place to initialize application items? I need initialize them first whenever user starts my application and regadless how they enter.

The Authentication Schemes used in both apps is SSO.
All pages require authorization. The schemes call a PL/SQL function accpeting a parameter of APP_USER and return a Boolean of whether this type of access is granted to that user.
Since all pages require authorization, navigating to any page causes SSO to be called and on authentication the authorization schemes are called to determine whether the user is authorized to see the page. If so, it will load ...
The code I have in the Post-Authentication Process is as follows (I'm pretty sure it doesn't fire because the row is not inserted => see note below ..):
declare
v_app_user VARCHAR2(7);
begin
v_app_user := SUBSTR(:APP_USER,1,7);
INSERT INTO profitauto.portf_front_end_login_log
(stdrd_id
, login_time
VALUES (v_app_user
, SYSTIMESTAMP
COMMIT;
end;
It seems to me to make sense that it doesn't fire if the user is authenticated in another app. Or is the authentication still happening in this app (just not prompting SSO to pop-up again to the user)...? Please note. If I have not authenticated myself already, and login to this app, the record IS written to the table ...

Similar Messages

  • Set item value from application level item

    Hello,
    I'm using Apex 2.2.1.00.04. I've modified the Page "No Tabs" template so that I can have my own Form (which is submitted to an outside website). On this form, I create some hidden items:
    <form name="frmEPay" method="POST" action="some_website">
    <input type="hidden" id="i1" name="userId" value=&G_ID. />
    <input type="hidden" id="i11" name="timestamp" value="" />
    <input type="hidden" id="i12" name="hash" value="" />
    On this apex page, I have a javascript function which is called in the onload (basically, the ApEx webpage displays and then is redirected). Here's a snippet of that function:
    var appProc = new htmldb_Get(null, html_GetElement('pFlowId').value,'APPLICATION_PROCESS=PrepEPay',0);
    appProc.get();
    appProc = null;
    document.getElementById('i11').value = "&G_ECOM_TIMESTAMP.";
    document.getElementById('i12').value = "&G_HASH.";
    document.frm_infiNET.submit();
    As you can see, the function calls an application level On Demand process (PrepEPay). That process sets the values of the application level items G_ECOM_TIMESTAMP and G_HASH. After those App level items have their values, I want to take those values and apply them to the hidden items on my custom form. Unfortunately, it doesn't work how I have things currently. I've verified that the On Demand process is running(by viewing the Session report on the page). So my problem seems to be this: 1. Retrieving the values from the Apex application level items
    2. Setting those values to the values of my hidden items (on my custom form)
    I think the biggest reason why I'm having difficulties is because I have to do a lot of this in the template, since that is the only way to have a separate Form. Maybe my problem is that I don't understand how to reference the Apex application level item value from a different form?
    Thanks,
    Marty

    Marty,
    You are describing this as if you expect the substitution within "&G_ECOM_TIMESTAMP." and the other one to take place in some kind of lexical order, e.g., from the top to the bottom of the HTML. The replacements happen in the engine, before anything is sent to the page. Then the browser interprets language constructs such as javascript calls which in your case includes an ajax invocation of a server-side application process.
    You need to re-think the machinery here.
    Scott

  • How do I clear application level item of the last value it held?

    See next post - I oopsed the first try.
    Edited by: user3034406 on Jul 28, 2009 1:48 PM

    Using oracle 11g, apex version 3.0.
    Ok, so I am developing a survey with questions and their related answers (either radio group or checkbox depending). I have it set up so that when a user clicks a checkbox, an apex_collection is updated. In the pl/sql of my region source, I left outer join to this collection to display the checkbox as checked when its value is found in the collection. Using this same strategy, I can delete a value from the collection when a user uncheckes a box....
    The problem I am having is this: the very last value that a user checks initially (i.e. takes checkbox from unchecked to checked status) is staying in my application level item :ADD_THIS, so when the page is refreshed or whatever, this value gets added to my collection, which means it shows as checked. Well, I think this is what is happenig...!
    I have tried setting the app level item to null in a computation process, but this screwed everything up and nothing would work right....
    So, if someone knows when, how and where to reset an app level item?
    NOTE: I barely know javascript (getting the hang of simple stuff but I have a long way to go!) and am a little shaky on things like session state, before load, after load, etc., etc, when it comes to apex. Please be patient with me! (smile)
    Here's what's going on script wise:
    PL/SQL in region source of page: builds list of questions and their associated answers
    DECLARE
    #####stuff here####
    CURSOR multiple_answer_cur IS select apex_item.checkbox(1, nvl(a.c001, a.answer_seq),'onclick="f_updateMember(q_seq, a_seq);"', a.c001, null, v_q_seq) cbox, a.answer_text, qa.question_seq, a.answer_seq
    *<etc. etc....>*
    CURSOR single_answer_cur IS select apex_item.radiogroup(radio_global, nvl(a.c001, a.answer_seq),a.c001, null, null, null, 'f_updateMember(q_seq, a_seq)',null, v_q_seq) rgroup, a.answer_text, qa.question_seq, a.answer_seq
    *<etc. etc....>*
    BEGIN
    ####stuff here that builds survey and writes it using HTP. to page####
    END;
    Javascript function to add or delete from collection (in header of page)
    function f_updateMember(q_seq, a_seq){
    --determine if value represents checked or unchecked box
    var isString = /q|a/;
    var getThis = document.getElementById(q_seq).value;
    var findinValue = getThis.search(isString);
    var getaddthis = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=AddCheckboxValue',0);
    var getdelthis = new htmldb_Get(null,$x('pFlowId').value,'APPLICATION_PROCESS=DelCheckboxValue',0);
    --onclick, if an 'a' or 'q' is found in value, this box is in the collection and therefore checked, so delete it
    if (findinValue != -1) {
    getdelthis.add('DELETE_THIS', "q"+q_seq+"a"+ a_seq);
    getdelthis.GetAsync(function(){return;});
    getdelthis = null;
    }else{
    --onclick, no 'a' or 'q' is found in value, this box is not in the collection, so add it
    getaddthis.add('ADD_THIS',"q"+q_seq+"a"+ a_seq);
    getaddthis.GetAsync(function(){return;});
    getaddthis = null;
    Snippet of page source
    <b>Question number one</b>
    <input type="checkbox" name="f01" value="q78a489" checked="checked" onclick="f_updateMember(78,
    489)" id="78" />Answer option one for question one>
    <b>Question number two</b>
    <input type="checkbox" name="f01" value="483" onclick="f_updateMember(77, 483)" id="77" />Answer
    option one for question two>
    Edited by: user3034406 on Jul 28, 2009 12:18 PM

  • Setting application level item during authentication

    We’re having an issue with an application level item that we set during our custom authentication function to store a role list for authorization. The issue is that the application level item, which should be set using htmldb_util.set_session_state(‘ITEM_NAME’, p_item_value), is not being set.
    On further investigation we realised that this issue was only affecting developers, not users of the application. This seems to be because the home page link, set in Shared Components > Edit Security Attributes, is set to “f?p=&APP_ID.:1:&SESSION.”, which means that the developers session was being passed to the application when the “Run Application” button was pressed. What then happens is that following the successful execution of the authentication function, a new session id is generated and visible on the URL and the Application Level Items are not set correctly.
    Examples:
    I’m developing an application on Apex that has the home page link set to “f?p=&APP_ID.:1:&SESSION.”, here’s the first part of my URL at the Application home page:
    http://apex.oracle.com/pls/otn/f?p=4000:1:1065658352862710::
    I hit “Run Application” and get to this URL (note the session id is the same)
    http://apex.oracle.com/pls/otn/f?p=16033:1:1065658352862710:::::
    I log in using any old username and password (the auth scheme on this demo app always returns true) and I get to this URL (note the session id is different):
    http://apex.oracle.com/pls/otn/f?p=16033:1:1403999736046638
    My application level item is not set and I start to cry. When I recover from my tearful episode I try to log in again, I hit logout and get taken to this URL:
    http://apex.oracle.com/pls/otn/f?p=16033:1
    I log in again (with the same username or different, it doesn’t matter) and low and behold, my application level item is set ok. This is the URL I can see (note another new session id):
    http://apex.oracle.com/pls/otn/f?p=16033:1:4917752800353335
    In despair, I close my browser window and go to my other application, this one has got the home page link set to “f?p=&APP_ID.:1” (no session id passed).
    I log back into Apex as a developer and go to the application home page at this URL:
    http://apex.oracle.com/pls/otn/f?p=4000:1:131988631742187::
    I hit “Run Application” and get to this URL (note the session id is missing):
    http://apex.oracle.com/pls/otn/f?p=19114:1::::::
    I log in using any old username and password (same deal as before) and I get to this URL (new session id):
    http://apex.oracle.com/pls/otn/f?p=19114:1:4320851658879093:::::
    Amazingly, this time the application level items are set first time.
    What I’d like to know (there is a purpose to this) is:
    - Why is a different session allocated to the application after login, when a “developer’s” session id is passed to the application?
    - If I remove the session id from the home page url what is the impact? I can’t think of anywhere within the application that this is used (other than between page 101 and the home page), but our thoughts are that this could mean that users end up generating more sessions on the server.
    - Is there any other way around this, perhaps using a different method of setting the application level item? The authentication procedure which sets the item reads as follows and mimics our authentication procedure (which you can assume does a little bit more than just returning true):
    function test_login 
      (p_username in varchar2 default null, 
      p_password in varchar2 default null) return boolean is 
    begin 
      htmldb_util.set_session_state('F16929_SYSDATE', to_char(sysdate, 'DAY')); 
      return true; 
    end;- Has anyone else encountered difficulties with the setting of application level items during login or has anyone come up with a more ingenious plan for passing something back from authentication that can later be used for authorisation?
    Thanks
    matt

    Scott,
    Many thanks for the response.
    We've found a way around this now, by changing the developer's usernames to the same as their NT/ Active Directory signon, which fools APEX into maintaining the session id from their builder session even though when logging into the application they get authenticated by LDAP.
    Using a post authentication process would be ok but I can't see any way of passing a variable retrieved in the authentication process under the first session to the post authentication process so that it can be set in the second session. We'd either therefore have to insert the data into a table and read it back or add an extra LDAP call to retrieve the user role/ group list during the post authentication process.
    Thanks again,
    Matt

  • Can't access  Application level item

    Hi,
    I have set an Application level item. I have tried to assign it as a default value on a Page Item but nothing is being shown.
    Application Level Item: APP_USER_ID
    On New Instance computation:
    select user_id
    from isp_user
    where login_id=:APP_USER
    Page Item: P57_CREATED_BY
    Default Value: &APP_USER_ID.
    Default Type: Static Text with Session State Substitutions
    No value is displayed, but if I replace &APP_USER_ID. with &APP_USER a value is displayed.
    Thanks for any assistance.

    OK, I've simplified the scenario to avoid any confusion. I'll give you a step by step of what I think you are telling me and see how we go. Believe I feel like I've tried everything...sure it's just my inexperience with the tool.
    Via Shared Components/Items created....
    Application Level Item: APP_USER_ID
    On Page 57 of my Application I created a Before Header computation:
    Item Name: APP_USER_ID
    Type: SQL Query
    Computation Point: Before Header
    Computation: select 21 from dual
    I assigned this to be the default value for a database field on Page 57, defined as follows:
    Page Item: P57_CREATED_BY
    Display As: Text Field
    Source Used: Always,replacing any existing value in session state
    Source Type: Database Column
    Default Value: &APP_USER_ID.
    Default Value Type: Static Text with Session State Substitutions
    I logged out and logged back in. I checked Session State and saw that the APP_USER_ID Application Item exists but has not value.
    I navigated to Page 57... no value is displayed in the P57_CREATED_BY field... If I review the Session State I can see that APP_USER_ID Application Item has a value of 21.
    Changing &APP_USER_ID. to &APP_USER. displays a value which seems to indicate it is not an issue with the field definition.
    Hope that is a little clearer.
    Thanks, appreciate your help.
    Jona

  • Adding pl/sql expression to application level item

    I would like to have an item shared by all pages within my application. My understanding is that I can define an application-level item for this.
    I know that for page-level items I can pool a value from the database by putting a pl/sql function into the item's "source value or expression" field and by setting the source type to "pl/sql expression or function".
    But I cannot do that for an application-level item. In fact, when I create my application-level item, the properties screen of it has pretty much nothing available to configure. It only has Name, Security, Build Option and Comments.
    Please, advise on how I can pool a value from the database for an application-level item.
    thanks
    Boris

    Boris,
    Application-level items are items that do not get rendered in HTML. They are for keeping named values in session state only and are available for use throughout the application. However, all page items are available for use throughout the application.
    What do you mean by "I would like to have an item shared by all pages within my application. "? If you want an item that gets rendered on every page, create a page 0 and put regions/items on that page.
    I don't know what you mean by "pool a value from the database".
    Scott

  • Application level item

    I am creating a public site (no authentication/authorization). In my application, I created an application level item and would like its value to be based on a value from the database. Do I use an application process or application computation to populate its value ?
    Thanks in advance.
    Message was edited by:
    [email protected]

    I would probably use an Application Computation with a computation type of "SQL Query".

  • Aplication Vs. Page level items for application process

    Hi,
    I have many application processes in my applications, many of them take parameters.
    Right now I am passing parameters using page level temporary items. This is causing each page to have many items that are only used for calling the application process.
    Is it better to use application level items for this purpose?
    any pros and cons for each of these?
    ~Ketan

    Arie,
    Are you saying that the condition only apply to rendering the item, but the APEX engine will still consider such an item a valid “internal” variable?
    Yes. The absence of a condition on a page item or a condition that evaluates to true simply allows it to be rendered on the page. The existence of the item in the page definition allows it to hold session state.
    We're planning to introduce a non-displaying page item type just for this purpose, sort of a scratchpad variable with no display properties, like an applicaition item but defined on a page.
    Scott

  • Setting an app level item based on :APP_USER

    I am trying to set an application level item right after I log in and I want the value to be based on the setting of :APP_USER. I created an application level process at the "On New Session: After Authentication" point containing the following code:
    select id into :F107_VOTER
    from el_person
    where userid = :APP_USER;
    This works fine when I run the page from the builder, but fails when I fire up a separate browser session and access the app directly. I'm suspicious that perhaps APP_USER built in item is not defined when the process point runs. Can someone confirm when APP_USER is set relative to this application level process point and/or perhaps suggest an alternative way to initialize an application level item that is dependent on APP_USER?

    Bill,
    The first page that runs in your new session is the login page. So your process runs at the very first opportunity (On New Session:After Authentication) when APP_USER is null, which doesn't do what you want. The name of that process point is misleading, it means after authentication for the current page. For the login page, which is necessarily a public page, the authentication steps are completed immediately after the show processing begins. So then you enter username/password and submit the login page which takes you to the first real page in the app, but still in that same session, but the process has already fired and won't run again.
    I suggest that you create another application item, F107_VOTER_INITIALIZED, change the process point to be Before Header, add a condition so that it runs only if F107_VOTER_INITIALIZED is null, then have the process run the query and set the initialization flag to a non-null value. Of course F107_VOTER itself can be the initialization flag if it is to remain constant throughout the session.
    Scott

  • Setting Application leve items after authentication

    All,
    I'm doing a custom authentication in my application using the built-in login page and calling the standard API. My function then returns TRUE/FALSE for authentication.
    After I authenticate the user, I want to set an application level item to the primary key of their user (i.e. GV_USER_ID).
    When the user issues queries against the reports, then I will build the where clause to say 'where user_id = :GV_USER_ID'.
    I'm at a loss however in setting the application level item.
    Initially, I set a PAGE PROCESSING -> PROCESS to fire onSubmit - after calcs & validations, putting it between "Login" and "Clear". My process queries the database using P101_USERNAME from the login page.
    However, when my user is logged in, the application level item is blank. Here is my code to set the value. Remember, my user will already have been authenticated.
    declare
    u_id USER.USER_ID%TYPE;
    predicate varchar2(30);
    begin
    if (lower(trim(:P101_USERNAME)) = 'administrator') then
    u_id := 0;
    predicate := 'user_id like ''%''';
    else
    select user_id
    into u_id
    from user
    where lower(trim(EMAIL_ADDR))=lower(trim(:P101_USERNAME));
    predicate := 'user_id = ' || u_id;
    end if;
    :GV_USER_ID := u_id;
    :GV_ID_PREDICATE := predicate;
    exception
    when others then :GV_ID_PREDICATE := 'user_id is null';
    end;
    Can someone tell me exactly where I should place this code so I can set my application items?
    Thanks.

    Ooops, spoke a little too soon. The application items do not get set with I first spawn the browser and and try to log in.
    However, when I log out and then log back in, then my application items get set. The code is now sitting in the authenticate_user function
    create or replace function authenticate_user
    (p_username in varchar2
    ,p_password in varchar2)
    return BOOLEAN is
    f_id FRANCHISEE.FRANCHISEE_ID%TYPE;
    passwd FRANCHISEE.PASSWORD%TYPE;
    predicate VARCHAR2(30);
    valid BOOLEAN;
    begin
    valid := FALSE;
    -- authenticate the user
    select password into passwd
    from franchisee
    where lower(trim(email_addr)) = lower(trim(p_username));
    if (passwd = p_password) then
    valid := TRUE;
    end if;
    -- set the query predicate
    if (valid = TRUE) then
    if (lower(trim(p_username)) = 'administrator') then
    f_id := 0;
    predicate := 'franchisee_id like ''%''';
    else
    select franchisee_id
    into f_id
    from franchisee
    where lower(trim(EMAIL_ADDR))=lower(trim(p_username));
    predicate := 'franchisee_id = ' || f_id;
    end if;
    htmldb_application.update_cache_with_write('GV_FRANCHISEE_ID', f_id);
    htmldb_application.update_cache_with_write('GV_ID_PREDICATE', predicate);
    end if;
    return(valid);
    exception
    when OTHERS then return(FALSE);
    end

  • Setting App level Items and using it.

    Hi all
    I am setting the application level item value by application level process which is working good.
    application level process : select get_dbname into env_str from dual.
    But when I use this variable value, its not working.
    In logout URL,, I am trying to put &env_str. but that is not working.
    Any idea?
    pb

    Scott,
    Its working, but for some reason this whole thing (using item in logout url) wasnt working for this particular application.
    Thanks for the reply.
    pb

  • How to define a application level (or page 0) plsql validation

    I have a selection region on page 0, which I use on a lot of pages. I want to define plsql validation for the items in that region.
    I have already a database package with the validation code.
    Now I want to define each validation only once and not on each page.
    How can I do this.

    Funny thing happened to me on the way to creating my scenario on the apex.oracle.com site. I actually got it to work there. Once I attempted to simplify my scenario to reproduce it on apex.oracle.com, I figured out a simple step (hack?) that I was missing. I put that back into my site and it's working there now as well.
    If it's useful for others who attempt to do something like this, I needed to create a page-level process which doesn't really do anything except have a "NOT NULL" condition of the APP_ERROR_MSG application-level item and then use the "&APP_ERROR_MSG." syntax in the "Success Message" of that process. In essence, I'm telling the process to display the error as a success message when the APP_ERROR_MSG item is not null.
    I feel this is a hack because I would prefer to have this error message processing at the application level rather than at the page level. I was forced to put this process at the page level rather than at the application level because (as of ApEx 2.2) application-level processes do not have a "Success Message" option, only an "Error Message" option, while page-level process have both.
    Maybe my "fix" is truly a hack and I would love to hear that in order to get a better solution, that is more generic and application-level based. My sample app is at http://apex.oracle.com/pls/otn/f?p=32483:1 with the username of "devguest" and the same as the password.
    I look forward to hearing some thoughts.

  • Unexpected error: unable to find item name at page or application level

    HI!
    I upgrade my application from apex 3.0 to 3.1
    I created a new page.
    When trying to insert a new row, on clicking "create", the page displays the error :
    Unexpected error: unable to find item name at page or application level
    This error didn't appear in apex 3.0
    What this error can be? Is it a bug of APEX 3.1?
    Thank you!

    I have seen this in combination with javascript. Recreating the item helped.
    Denes Kubicek
    http://deneskubicek.blogspot.com/
    http://www.opal-consulting.de/training
    http://htmldb.oracle.com/pls/otn/f?p=31517:1
    -------------------------------------------------------------------

  • Application Level Function for Conditional Display

    I need to hide a field on Print Preview if it is null. I currently have the following PL/SQL Expression Condition:
    :P305_DEPT IS NOT NULL AND v('PRINTER_FRIENDLY') <> 'YES'
    It works great; now I need to do this for a lot more fields within my application. Is there a way to call a PL/SQL process defined in HTML DB, passing it the current item value, or some other way to save myself some typing?
    I've tried various combinations of shortcuts, substitution strings, application processes, etc. and can't seem to get the right combination.
    I'm hoping you have a cool solution, or some other ideas I can try out.
    Thanks!
    Chaunaci

    Hi Raj,
    All of this came up because we have several data items displayed above each report page, which allow the user to enter filter criteria. When the page is displayed in Print Friendly mode, the Select Lists display as blanks when null, but Text Boxes display as [] when null.
    Our QAs have asked us to make all of the filter fields consistent in appearance in Print Friendly mode. The work-around solution is to hide the filter fields that are null when in Print Friendly mode. Therefore, we came up with the following PL/SQL Expression to use in the Conditional Display:
    :P305_DEPT IS NOT NULL AND v('PRINTER_FRIENDLY') <> 'YES'
    Because I will need to add the above conditional statement to many items, I was hoping to create and call an HTML DB application-level process and pass the current item value in, so my conditional display logic would look something like...
    HIDE_NULL_ON_PRINT(:P305_DEPT).
    When I was doing some additional testing last night, I realized my boolean logic needed to be tweaked, and it would be nice to tweak it in just one place, rather than on every field's conditional display.
    I currently have it working by putting the IS NOT NULL AND v('PRINTER_FRIENDLY') <> 'YES' into an application substitution string, so my conditional logic shows as:
    :P305_DEPT &HIDE_NULL_FOR_PRINT.
    In trying to determine if this was the best solution, I need answers to the following issues:
    1. Is there a way to generically reference the current item in the conditional display logic? I currently type in the specific item name (ex: :P305_DEPT), but it would be nice if instead I could just say &CURRENT_ITEM_NAME. (or something similar).
    2. Can I create an application-level process, pass a parameter into it (the current item), and have it return a value that can be evaluated by my conditional logic display?
    Thanks so much for your quick responses to this and all my previous posts. It is wonderful to be able to post a problem at the end of the day, and come in to a solution in the morning!
    Chaunaci

  • Quotes in a page level item not showing up as " when used in a hyper link

    Hi all,
    In my app, I need to hyper link to a crystal report application with parameters from my page. I have a page level item that puts my parameter in quotes, but when the item is utilized in the hyperlink, the quotes come across as & q u o t ; (spaces were put in to the post to avoid html conversion) how can my string be used to appear the way I want?

    I don't use Crystal Reports, but, in general, you should encode your URL. When you create your link, run the URL through utl_url.escape() first. Put it in your select statement.
    E.G.,
    select utl_url.escape('http://oracle.com/foo"bar') from dual;
    will escape/encode the quotation mark and give you:
    http://oracle.com/foo%22bar
    This translates the " into a URL-safe escape code, %22, that should (I hope) be understood properly by your Crystal Reports server.
    Good luck.

Maybe you are looking for

  • Is there a way to allow two users on the same itunes account to see their individual contacts and calendars

    I'm just looking for away to allow my wife and I to see our contacts, emails, and calendars on the macbook pro. We have a single itunes account, with two different iphones. How do we do this? Right now the computer only shows my wifes information. Th

  • MRDVR issues, Some Venting & Some Quesitons

    I'm having problems with my HDDVR as follows: On almost a daily basis, I have to unplug the HDDVR in order for the SD Boxes to see the DVR content.  At those same times, the HDDVR cannot access VOD until it is unplugged & re-connected to power. Here'

  • MS SQL Server 2000 JDBC Driver + Tomcat 4

    Will the MS SQL Server 2000 JDBC Driver (http://www.microsoft.com/SQL/downloads/2000/jdbc.asp) work with a JSP application on the Tomcat Server. The JSP is to access a MS SQL Server Database. Would it b able to do this with this Driver or do I need a

  • Jpeg optimization

    I am working on a graphic image in Fireworks (Macromedia MX) and since I am using gradient colors, I have optimized it as a jpeg (80-better quality). The image itself is approx. 740 x 425 pixels and I have been working with the optimization to get th

  • Finder won't color label files

    I am working through a directory of files and color labeling them using finder. Some files won't take the color labels. It has nothing to do with the file format or any other permissions conflicts.