Possible way to Change entry through OBYL in a nonmofiable Status
Hi,
Is there any way to change the entry through OBYL without changning the status of client from nonmodifiable to modifiable. We are using 3 GL account i.e Salary, Incentive, Reimbursement, which needs to swiched frequenlty. So right now we have to modify the client status each and every time. So i am looking for all the possible solution.
Regards,
Subhash
I am at a loss - this has worked for me; I have been testing it before my previous answer to make sure I do no lead you in error.
Let us check the settings step by step again, please.
- You went to SPRO in your DEV-system -> Payroll -> Payroll India -> Other Reports -> Activites in the AC-System -> Assign Technical Accounts.
- You placed your mouse on the short-text of the activity and went to: -> Edit -> Display IMG-Activity
- You switched to tabstrip 'Maint. objects'
- You double-clicked on Object F30 L
- You entered your SSCR-key etc.
- You flagged 'Current Settings' and saved and transported to ... QAS ... PRD.
- You checked in transaction SCC4 for the client you want to run OBYL in, that the role of the client is 'P' - Productive
- You waited for a buffer-refresh and started transaction OBYL.
Flagging the view in table OBJH is nice - but I was wrong there - it is not strictly necessary; for my test now I have been undoing that change and it still works.
Please check the list again ... it works on both, ECC 5.0 and ECC 6.0
Similar Messages
-
to purchas apps, and music. if you have not done it in a long time you have to hav the anwsers to your security questions. i do not know the anwsers to mine, and there is no way to change them without knowing them. if there is a way to change the security questions without knowing them i would really like to know how.
Security questions:
https://discussions.apple.com/docs/DOC-4551
http://support.apple.com/kb/HT5312
This is also useful:
http://www.macworld.co.uk/ipad-iphone/news/?newsid=3463233&olo=email -
Is it possible to delete SM12 entry through ABAP
Hi,
is it possible to delete an entry from SM12 list which is appeared against my id.
Early response would be appreciated.
//BRHello
If you had looked carefully at transaction SM12 (package SENQ, ECC 6.0) you would have found the solution yourself.
1. Read lock entries using fm ENQUE_READ (GUNAME = '<user name>') or ENQUE_REPORT.
2. Delete lock entries using fm ENQUE_DELETE.
Regards
Uwe -
Authority to change entries through SM30 depending on values of fields?
Hi.
Is it somehow possible to set authorizations in a way, that a user could change only certain entries in a customizing table using SM30? What I want to achieve with this - we have an internationally used system, where consultants from different countries are working often on the same customizing tables and we would like to restrict tham to be able to change records only relevant for those countries, so they cannot change the records for other countries by mistake / on purpose. The records are usually identified by a certain "grouping" field (for instance MOLGA in table T511K or MOABW in T554S).
So far I couldn't find anything apart from the S_TABU_DIS object, which is too rough for this requirement.
Or maybe is there another way to achieve security in such a scenario?
Thanks in advance for any ideas.Hi Dusan,
You can restrict access to tables by business organizational units using the
Line-oriented authorizations introduced in Release 4.6C. You could previously
only use the authorization objects S_TABU_DIS and S_TABU_CLI to allow or
prevent access to complete tables.
The introduction of organizational criteria allows you to restrict user access
to parts of a table. The authorization object <b>S_TABU_LIN</b> has been
introduced for this purpose.
One possible use for line-oriented authorizations would be that a user can
only display and change the contents of a particular work area, e.g. a
country or plant, in a table.
See the IMG documentation under Basis ---> System administration ---> Users and authorizations ---> Line-oriented authorizations.
<u>Following are the fields present:</u>
Activity
Organization criterion for key
Org. crit. attribute 1
Org. crit. attribute 2
Org. crit. attribute 3
Org. crit. attribute 4
Org. crit. attribute 5
Org. crit. attribute 6
Org. crit. attribute 7
Org. crit. attribute 8
Hope it helps.
Please award points if it is useful.
Thanks & Regards,
Santosh -
When I logged into iCloud to check it out, my iCloud mail thing seemed to belong to some stranger. I don't really know what happened.
What do you mean nothing.
If it shows $0.00 then that's nothing, that's zero. If it shows truely nothing then you are not logging in with an account that had store credit. Or not logging in at all.
Click on your name so the triangle appears, then click on Account for more details. -
What are the possible ways of dialing modem through LabVIEW?
Vikas H. Kumthekar
ASE
Tata Consultancy Services
Pune-1I worked on a lab in college to talk with the modem in the computer that I was using. you will send commands just like you would in hyperterminal. You just have to be careful with your formatting of a string.
BJD1613
Lead Test Tools Development Engineer
Philips Respironics
Certified LV Architect / Instructor -
Hi at the moment my ipod is on manual sync mode. Is there any way of changing this to auto-sync without losing the music on my ipod or library? Possibly more importantly is there a way I can transfer the ratings from my ipod onto my i-tunes?
This is so I can delete music from my ipod knowing its rated on my i-tunes so I can then see later if I want to re-add it based on its rating
ThanksIs there any way of changing this to auto-sync without losing the music on my ipod or library?
Unfortunately there is not.
Possibly more importantly is there a way I can transfer the ratings from my ipod onto my i-tunes?
Not without the help of third party software such as this one:
http://www.copytrans.net/copytrans.php
B-rock -
My ipod touch has an old email account assoicated with itunes. I no longer remember the password associated with this email and since it is gone I can't retrieve password by sending to email account. When I try to retrieve by hints it locks up when i enter birth month and day. Is there a way to change my Ipod through my computer? I have searched and can't find it. Thanks
How to reset the password and other items are here.
\Frequently Asked Questions About Apple ID
http://support.apple.com/kb/he37 You can do it through a computer. After resetting the password and other stuff, on the iPod go to Settings>Store and sign out of the account and then sign back in. -
Is it possible to change the colour of the Pages' skin, since it is grey, is there any way to change it and make it less tedious?
fruhulda wrote:
If you see any grey"background" if is on the left and that is the comment field.
Hi fruhulda
It's not the comment field which is a restrictive description.
In fact it's the window's background.
Yvan KOENIG (VALLAURIS, France) lundi 26 septembre 2011 12:08:45
iMac 21”5, i7, 2.8 GHz, 4 Gbytes, 1 Tbytes, mac OS X 10.6.8 and 10.7.0
My iDisk is : <http://public.me.com/koenigyvan>
Please : Search for questions similar to your own before submitting them to the community -
Question
When I do a search for an image I only have a limited number of images. There used to be a ton of pictures on my screen and an unlimited amount of pictures to look through. Is there a way of changing this back to the way it used to be???Thanks. So there's no means of knowing whether a text message has been delivered, not to mention time of delivery. Perhaps I've gone for the wrong phone. It might do a lot but seems to miss out on some basics.
-
What is the proper way to change rowHeight? (possibly animate?)
What is the proper way to change rowHeight for UITableView? I set tableView.rowHeight and do a [tableView reloadData]. Is this necessary? Also, is it possible to animate the height change? It is not a standard transition.
Not a perfect solution for your animation question - but....
in the function where you want to change the height
WARNING PSUDO CODE
//indexPath is the path for theCell you want to edit
thePlaceThatYouStoreYourHeights[x] = aNewHeight;
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
and inside of - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath (NSIndexPath *)indexPath
return thePlaceThatYouStoreYourHeights[indexPath.row];
Basic flow
1. Store new desired height somewhere
2. Remove the cell deleteRowsAtIndexPaths
3. UITableView paints the animation for the "remove" transition **see note
4. Re-add the cell insertRowsAtIndexPaths (which subsequently kicks of a call to heightForRowAtIndexPath before animating)
5. UITableView paints the animation for the "add" transition
You do NOT need to call reloadData to get this to work.
**note: an enum such as UITableViewRowAnimationNone does not exist (it should but it doesnt seem to). the docs for InsertRowsAtIndexPaths say "A constant that either specifies the kind of animation to perform when inserting the cell or requests no animation." however there are only 5 items in the UITableViewRowAnimation enum and UITableViewRowAnimationFade resolves to 0 - so passing NO will actually get you fade. Nor will it take nil.
Hope this helps shed some light. -
Since I bought my Motorola bluetooth, all notifications while connected are played through the headset and not the phone's speaker. This wasn't a problem on my old bluetooth set.
Is there a way to change this where when I'm connected, the notifications play through the speaker?
KSetup as new.
Settings>General>Reset>Erase all content and settings -
Is there a way to change the LUt extension form .CUBE to .cube. on export with this script in photoshop For MAC:
Chris Cox wrote:
The file extensions are written by the export plugin. (which incidentally has a comment that two studios wanted all caps extensions, but I failed to write down which ones in the comments)
To change the filenames, you'd want to add something at the end of doExportLUTs() that uses the supplied path and substitutes the desired extensions, then renames the file.
Thank you
// Export Color Lookup Tables automation in JavaScript
// IN_PROGRESS - why can't ColorSync Utility open any profile with a grid of 160 or larger?
// 150 works, 160 fails -- sent samples in email to Apple on Nov 8, 2013; they are investigating
// DEFERRED - right to left filenames (Arabic) come out wrong because of appending "RGB" and file extensions
// This seems to be a bug in JavaScript's handing of strings, not sure we can solve it easily.
// It might possibly be handled by checking bidi markers in UTF8 stream and adding custom handling for appending text/extensions.
@@@BUILDINFO@@@ ExportColorLookupTables.jsx 1.0.0.0
// BEGIN__HARVEST_EXCEPTION_ZSTRING
<javascriptresource>
<name>$$$/JavaScripts/ExportColorLookupTables/Menu=Color Lookup Tables...</name>
<menu>export</menu>
<enableinfo>true</enableinfo>
<eventid>9AA9D7D6-C209-494A-CC01-4E7D926DA642</eventid>
</javascriptresource>
// END__HARVEST_EXCEPTION_ZSTRING
#target photoshop
const appUIState = app.displayDialogs;
app.displayDialogs = DialogModes.NO; // suppress all app dialogs
app.bringToFront(); // make Photoshop the frontmost app, just in case
// on localized builds we pull the $$$/Strings from a .dat file
$.localize = true;
// from Terminology.jsx
const classApplication = app.charIDToTypeID('capp');
const classProperty = app.charIDToTypeID('Prpr');
const enumTarget = app.charIDToTypeID('Trgt');
const eventGet = app.charIDToTypeID('getd');
const eventSet = app.charIDToTypeID('setd');
const kcolorSettingsStr = app.stringIDToTypeID("colorSettings");
const kDither = app.charIDToTypeID('Dthr');
const keyTo = app.charIDToTypeID('T ');
const typeNULL = app.charIDToTypeID('null');
const typeOrdinal = app.charIDToTypeID('Ordn');
const kFloatWindowStr = app.stringIDToTypeID("floatWindow");
const typePurgeItem = app.charIDToTypeID('PrgI');
const enumClipboard = app.charIDToTypeID('Clpb');
const eventPurge = app.charIDToTypeID('Prge');
const keyExportLUT = app.charIDToTypeID( "lut " );
const keyFilePath = app.charIDToTypeID( 'fpth' );
const keyDescription = app.charIDToTypeID( 'dscr' );
const keyCopyright = app.charIDToTypeID( 'Cpyr' );
const keyDataPoints = app.charIDToTypeID( 'gPts' );
const keyWriteICC = app.charIDToTypeID( 'wICC' );
const keyWrite3DL = app.charIDToTypeID( 'w3DL' );
const keyWriteCUBE = app.charIDToTypeID( 'wCUB' );
const keyWriteCSP = app.charIDToTypeID( 'wCSP' );
const kScriptOptionsKey = "9AA9D7D6-C209-494A-CC01-4E7D926DA642"; // same as eventID above
const sGridMin = 7; // these must match the slider range defined in the dialog layout
const sGridMax = 256;
const sGridDefault = 32;
// our baseline UI configuration info
var gSaveFilePath = ""; // overwritten by document path
var gDescription = ""; // overwritten by document name
var gCopyright = ""; // "Adobe Systems Inc., All Rights Reserved";
var gGridPoints = sGridDefault;
var gDoSaveICCProfile = true;
var gDoSave3DL = true;
var gDoSaveCUBE = true;
var gDoSaveCSP = true;
gScriptResult = undefined;
// start doing the work...
main();
app.displayDialogs = appUIState; // restore original dialog state
gScriptResult; // must be the last thing - this is returned as the result of the script
function readOptionsFromDescriptor( d )
if (!d)
return;
if (d.hasKey(keyFilePath))
gSaveFilePath = d.getString( keyFilePath ); // will be overridden by UI
if (d.hasKey(keyDescription))
gDescription = d.getString( keyDescription ); // will be overridden always
if (d.hasKey(keyCopyright))
gCopyright = d.getString( keyCopyright );
if (d.hasKey(keyDataPoints))
var temp = d.getInteger( keyDataPoints );
if (temp >= sGridMin && temp <= sGridMax)
gGridPoints = temp;
if (d.hasKey(keyWriteICC))
gDoSaveICCProfile = d.getBoolean( keyWriteICC );
if (d.hasKey(keyWrite3DL))
gDoSave3DL = d.getBoolean( keyWrite3DL );
if (d.hasKey(keyWriteCUBE))
gDoSaveCUBE = d.getBoolean( keyWriteCUBE );
if (d.hasKey(keyWriteCSP))
gDoSaveCSP = d.getBoolean( keyWriteCSP );
function createDescriptorFromOptions()
var desc = new ActionDescriptor();
desc.putString( keyFilePath, gSaveFilePath ); // will be overridden by UI
desc.putString( keyDescription, gDescription ); // will always be overridden by document name
desc.putString( keyCopyright, gCopyright );
desc.putInteger( keyDataPoints, gGridPoints );
desc.putBoolean( keyWriteICC, gDoSaveICCProfile );
desc.putBoolean( keyWrite3DL, gDoSave3DL );
desc.putBoolean( keyWriteCUBE, gDoSaveCUBE );
desc.putBoolean( keyWriteCSP, gDoSaveCSP );
return desc;
function doExportUI()
// DEFERRED - it might be nice to be able to run without UI
// Right now we can't, but someone could modify the script if they so desire
const sDescription = localize("$$$/AdobeScript/Export3DLUT/Description=Description:");
const sCopyright = localize("$$$/AdobeScript/Export3DLUT/Copyright=Copyright:");
const sQuality = localize("$$$/AdobeScript/Export3DLUT/Quality=Quality");
const sGridPoints = localize("$$$/AdobeScript/Export3DLUT/GridPoints=Grid Points:");
const sFormatsToSave = localize("$$$/AdobeScript/Export3DLUT/Formats=Formats");
const sOpenButton = localize("$$$/JavaScripts/psx/OK=OK");
const sCancelButton = localize("$$$/JavaScripts/psx/Cancel=Cancel");
const strTextInvalidType = localize("$$$/JavaScripts/Export3DLUT/InvalidType=Invalid numeric value. Default value inserted.");
const strTextInvalidNum = localize("$$$/JavaScripts/Export3DLUT/InvalidNum=A number between 7 and 256 is required. Closest value inserted.");
const strNoExportsSelected = localize("$$$/JavaScripts/Export3DLUT/NoExportTypesSelected=No export types were selected.");
const strExportPrompt = localize("$$$/JavaScripts/Export3DLUT/ExportColorLookup=Export Color Lookup");
const strUntitledLUT = localize("$$$/JavaScripts/Export3DLUT/UntitledLUTFilename=untitled.lut");
const sSaveICC = localize("$$$/AdobeScript/Export3DLUT/ICCProfile=ICC Profile");
// these are not localized, since they refer to file format extensions
const sSave3DL = "3DL";
const sSaveCUBE = "CUBE";
const sSaveCSP = "CSP";
// strings similar to JPEG quality
const sPoor = localize("$$$/AdobeScript/Export3DLUT/Poor=Poor");
const sLow = localize("$$$/AdobeScript/Export3DLUT/Low=Low");
const sMedium = localize("$$$/AdobeScript/Export3DLUT/Medium=Medium");
const sHigh = localize("$$$/AdobeScript/Export3DLUT/High=High");
const sMaximum = localize("$$$/AdobeScript/Export3DLUT/Maximum=Maximum");
const ui = // dialog resource object
"dialog { \
orientation: 'row', \
gp: Group { \
orientation: 'column', alignment: 'fill', alignChildren: 'fill', \
description: Group { \
orientation: 'row', alignment: 'fill', alignChildren: 'fill', \
st: StaticText { text:'Description:' }, \
et: EditText { characters: 30, properties:{multiline:false}, text:'<your description here>' } \
copyright: Group { \
orientation: 'row', alignment: 'fill', alignChildren: 'fill', \
st: StaticText { text:'Copyright:' }, \
et: EditText { characters: 30, properties:{multiline:false}, text:'<your copyright here>' } \
qual: Panel { \
text: 'Quality', \
orientation: 'column', alignment: 'fill', alignChildren: 'fill', \
g2: Group { \
st: StaticText { text:'Grid Points:' }, \
et: EditText { characters:4, justify:'right' } \
drp: DropDownList {alignment:'right'} \
sl: Slider { minvalue:7, maxvalue:256, value: 32 }, \
options: Panel { \
text: 'Formats', \
orientation: 'column', alignment: 'fill', alignChildren: 'left', \
ck3DL: Checkbox { text:'3DL', value:true }, \
ckCUBE: Checkbox { text:'CUBE', value:true } \
ckCSP: Checkbox { text:'CSP', value:true } \
ckICC: Checkbox { text:'ICC Profile', value:true } \
gButtons: Group { \
orientation: 'column', alignment: 'top', alignChildren: 'fill', \
okBtn: Button { text:'Ok', properties:{name:'ok'} }, \
cancelBtn: Button { text:'Cancel', properties:{name:'cancel'} } \
const titleStr = localize("$$$/AdobeScript/Export3DLUT/DialogTitle/ExportColorLookupTables=Export Color Lookup Tables");
var win = new Window (ui, titleStr ); // new window object with UI resource
// THEORETICALLY match our dialog background color to the host application
win.graphics.backgroundColor = win.graphics.newBrush (win.graphics.BrushType.THEME_COLOR, "appDialogBackground");
// poor, low, medium, high, max
var MenuQualityToGridPoints = [ 8, 16, 32, 64, 256 ];
function GridPointsToQualityMenuIndex( num )
var menu = MenuQualityToGridPoints;
var menuItems = menu.length;
if (num <= menu[0])
return 0;
if (num >= menu[ menuItems-1 ])
return (menuItems-1);
for (var i = 0; i < (menuItems-1); ++i)
if ((num >= menu[i]) && (num < menu[i+1]))
return i;
return 0; // just in case of a logic failure
// insert our localized strings
var drop = win.gp.qual.g2.drp; // for easier typing
drop.add('item', sPoor ); // 0
drop.add('item', sLow ); // 1
drop.add('item', sMedium ); // 2
drop.add('item', sHigh ); // 3
drop.add('item', sMaximum ); // 4
drop.selection = drop.items[2]; // Medium
win.gp.description.st.text = sDescription;
win.gp.copyright.st.text = sCopyright;
win.gp.qual.text = sQuality;
win.gp.qual.g2.st.text = sGridPoints;
win.gp.options.text = sFormatsToSave;
win.gp.options.ck3DL.text = sSave3DL;
win.gp.options.ckCUBE.text = sSaveCUBE;
win.gp.options.ckCSP.text = sSaveCSP;
win.gp.options.ckICC.text = sSaveICC;
win.gButtons.okBtn.text = sOpenButton;
win.gButtons.cancelBtn.text = sCancelButton;
// set starting parameters
win.gp.description.et.text = gDescription;
win.gp.copyright.et.text = gCopyright;
win.gp.options.ckICC.value = gDoSaveICCProfile;
win.gp.options.ck3DL.value = gDoSave3DL;
win.gp.options.ckCUBE.value = gDoSaveCUBE;
win.gp.options.ckCSP.value = gDoSaveCSP;
// global flag/hack to keep the UI pretty
var gGlobalPreventChanges = false;
with (win.gp.qual)
sl.value = gGridPoints;
g2.et.text = gGridPoints;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(gGridPoints) ];
// global flag is ugly, but recursive change calls are uglier
g2.et.onChange = function () { if (gGlobalPreventChanges) { return; }
gGlobalPreventChanges = true;
var val = Number(this.text);
this.parent.parent.sl.value = val;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(val) ];
gGlobalPreventChanges = false; };
sl.onChanging = function () { if (gGlobalPreventChanges) { return; }
gGlobalPreventChanges = true;
var val = Math.floor(this.value);
this.parent.g2.et.text = val;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(val) ];
gGlobalPreventChanges = false; };
// DEFERRED - we should also set the value if the same menu item is selected again (reset)
// but the JSX toolkit doesn't support that
drop.onChange = function()
if (gGlobalPreventChanges) { return; }
gGlobalPreventChanges = true;
var theSelection = this.selection.text;
if (theSelection != null) { // only change if selection made
var theSelectionIndex = this.selection.index;
var newGridPoints = MenuQualityToGridPoints[ theSelectionIndex ];
win.gp.qual.g2.et.text = newGridPoints;
win.gp.qual.sl.value = newGridPoints;
gGlobalPreventChanges = false;
win.onShow = function ()
this.qual.sl.size.width = 128;
this.layout.layout(true);
win.gButtons.cancelBtn.onClick = function () { this.window.close(2); };
// validate inputs when the user hits OK
var gInAlert = false;
win.gButtons.okBtn.onClick = function ()
if (gInAlert == true)
gInAlert = false;
return;
var gridText = win.gp.qual.g2.et.text;
var w = Number(gridText);
var inputErr = false;
if ( isNaN( w ) )
if ( DialogModes.NO != app.playbackDisplayDialogs )
gInAlert = true;
alert( strTextInvalidType );
gInAlert = false;
win.gp.qual.g2.et.text = sGridDefault;
win.gp.qual.sl.value = sGridDefault;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridDefault) ];
return false;
if ( (w < sGridMin) || (w > sGridMax) )
if ( DialogModes.NO != app.playbackDisplayDialogs )
gInAlert = true;
alert( strTextInvalidNum );
gInAlert = false;
if ( w < sGridMin)
inputErr = true;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridMin) ];
win.gp.qual.g2.et.text = sGridMin;
win.gp.qual.sl.value = sGridMin;
return false;
if ( w > sGridMax)
inputErr = true;
drop.selection = drop.items[ GridPointsToQualityMenuIndex(sGridMax) ];
win.gp.qual.g2.et.text = sGridMax;
win.gp.qual.sl.value = sGridMax;
return false;
if (inputErr == false)
win.close(true);
return;
win.center(); // move to center the dialog
var ret = win.show(); // dialog display
if (2 == ret)
return false; // user cancelled
// user hit OK, copy values from dialog
gDescription = win.gp.description.et.text;
gCopyright = win.gp.copyright.et.text;
gGridPoints = win.gp.qual.sl.value;
gDoSave3DL = win.gp.options.ck3DL.value;
gDoSaveCUBE = win.gp.options.ckCUBE.value;
gDoSaveCSP = win.gp.options.ckCSP.value;
gDoSaveICCProfile = win.gp.options.ckICC.value;
// if no files are going to be saved, then we have zero work to do
if ((false == gDoSaveICCProfile) && (false == gDoSave3DL) &&
(false == gDoSaveCUBE) && (false == gDoSaveCSP) )
// tell the user that no formats were selected
alert( strNoExportsSelected );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return false;
// prompt user for directory and output base filename
// default to directory and filename of current document
var currentDocumentPath
try
// if the file has no path (not saved), then this throws
var documentPath = app.activeDocument.fullName.fsName; // Get the OS friendly file path and name
documentPath = documentPath.replace(/\....$/,''); // remove extension, if there is one
documentPath = documentPath + ".lut"; // add dummy extension
currentDocumentPath = File ( documentPath );
catch (e)
// if there was no document path, default to user's home directory
var defaultName = "~/" + strUntitledLUT;
currentDocumentPath = File(defaultName);
var fname = currentDocumentPath.saveDlg(strExportPrompt);
if (fname == null)
return false;
gSaveFilePath = fname.fsName;
return true;
function doExportLUTs( path )
const keyUsing = charIDToTypeID( 'Usng' );
const eventExport = charIDToTypeID( 'Expr' );
var desc = new ActionDescriptor();
var desc2 = new ActionDescriptor();
desc2.putString( keyFilePath, path );
desc2.putString( keyDescription, gDescription );
desc2.putInteger( keyDataPoints, gGridPoints );
// assemble the full copyright string, if needed
var copyrightAssembled = gCopyright;
if (gCopyright != "")
var theDate = new Date();
// the year is from 1900 ????
var theYear = (theDate.getYear() + 1900).toString();
// Localization team says to just use the year
var dateString = theYear;
copyrightAssembled = localize("$$$/JavaScripts/Export3DLUT/Copyright=(C) Copyright ") + dateString + " " + gCopyright;
desc2.putString( keyCopyright, copyrightAssembled );
// select output format
desc2.putBoolean( keyWriteICC, gDoSaveICCProfile );
desc2.putBoolean( keyWrite3DL, gDoSave3DL );
desc2.putBoolean( keyWriteCUBE, gDoSaveCUBE );
desc2.putBoolean( keyWriteCSP, gDoSaveCSP );
desc.putObject( keyUsing, keyExportLUT, desc2 );
try
var resultDesc = executeAction( eventExport, desc, DialogModes.NO );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/ExportLUTFailed=Unable to run the Export Color Lookup plugin because ");
alert( str + e + " : " + e.line );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return false;
return true;
function doRenderGrid( points )
// call the grid rendering plugin to do the work
const keyRenderGrid = charIDToTypeID( "3grd" );
const keyDataPoints2 = charIDToTypeID( 'grdP' );
var args = new ActionDescriptor();
args.putInteger( keyDataPoints2, points);
try
var result = executeAction( keyRenderGrid, args, DialogModes.NO );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/RenderGridFailed=Unable to render color grid because ");
alert( str + e + " : " + e.line );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return false;
return true;
function resizeDocumentInPixels( width, height )
var myDocument = app.activeDocument;
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
myDocument.resizeCanvas( width, height, AnchorPosition.MIDDLECENTER)
app.preferences.rulerUnits = originalRulerUnits;
function GetColorSettings()
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty( classProperty, kcolorSettingsStr );
ref1.putEnumerated( classApplication, typeOrdinal, enumTarget );
desc1.putReference( typeNULL, ref1 );
var result = executeAction( eventGet, desc1, DialogModes.NO );
var desc2 = result.getObjectValue( kcolorSettingsStr );
return desc2;
function GetColorConversionDitherState()
var settings = GetColorSettings();
if (settings.hasKey(kDither))
return settings.getBoolean( kDither );
else
return null;
function ConvertTo16Bit()
const eventConvertMode = charIDToTypeID( 'CnvM' );
const keyDepth = charIDToTypeID( 'Dpth' );
var modeDesc16Bit = new ActionDescriptor();
modeDesc16Bit.putInteger( keyDepth, 16 );
var result = executeAction( eventConvertMode, modeDesc16Bit, DialogModes.NO );
// state = true or false
function SetColorConversionDither( state )
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty( classProperty, kcolorSettingsStr );
ref1.putEnumerated( classApplication, typeOrdinal, enumTarget );
desc1.putReference( typeNULL, ref1 );
var desc2 = new ActionDescriptor();
desc2.putBoolean( kDither, state );
desc1.putObject( keyTo, kcolorSettingsStr, desc2 );
executeAction( eventSet, desc1, DialogModes.NO );
function PurgeClipboard()
var desc1 = new ActionDescriptor();
desc1.putEnumerated( typeNULL, typePurgeItem, enumClipboard );
var result = executeAction( eventPurge, desc1, DialogModes.NO );
// This helps us avoid resizing existing document views in tabbed document mode.
// This is new functionality, and will not work in older Photoshop versions.
function MoveDocumentToNewWindow()
var desc1 = new ActionDescriptor();
var result = executeAction( kFloatWindowStr, desc1, DialogModes.NO );
function main()
try
var tempDoc = null;
var tempDoc2 = null;
// do basic troubleshooting first
// make sure there is a document
if (!app.activeDocument)
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// check the document mode
var mode = app.activeDocument.mode;
if (mode != DocumentMode.RGB
&& mode != DocumentMode.LAB
&& mode != DocumentMode.CMYK)
var str = localize("$$$/JavaScripts/Export3DLUT/UnsupportedColorMode=Could not export Color Lookup Tables because only RGB, LAB, and CMYK color modes are supported.");
alert(str);
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// check the document depth, for safety
var depth = app.activeDocument.bitsPerChannel; // an object, not a number - why? I have no idea...
var bitsPerChannel = 1;
if (depth == BitsPerChannelType.EIGHT)
bitsPerChannel = 8;
else if (depth == BitsPerChannelType.SIXTEEN)
bitsPerChannel = 16;
else if (depth == BitsPerChannelType.THIRTYTWO)
bitsPerChannel = 32;
else
var str = localize("$$$/JavaScripts/Export3DLUT/UnsupportedImageDepth=Could not export Color Lookup Tables because only 8, 16, and 32 bits/channel are supported.");
alert(str);
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// Check layer types: background plus adjustments only
// For now, don't check each layer - a multiply solid layer still works as a color adjustment, as does selective blending
// Users will get odd results from other layer types (layer masks, pixel layers, etc.)
try
app.activeDocument.backgroundLayer.visible = true;
catch (e)
if (activeDocument.layers.length == 1)
alert( localize("$$$/JavaScripts/Export3DLUT/NoAdjustmentLayers=Could not export Color Lookup Tables because this document has no adjustment layers.") );
else
alert( localize("$$$/JavaScripts/Export3DLUT/NoBackground=Could not export Color Lookup Tables because this document has no background.") );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// look for last used params via Photoshop registry, getCustomOptions will throw if none exist
try
var desc = app.getCustomOptions(kScriptOptionsKey);
readOptionsFromDescriptor( desc );
catch(e)
// it's ok if we don't have any existing options, continue with defaults
// set some values from the document
gDescription = app.activeDocument.name;
// ask the user for options, bail if they cancel at any point
if ( doExportUI() == false)
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
return;
// we're good to go, so save our parameters for next time
app.putCustomOptions(kScriptOptionsKey, createDescriptorFromOptions() );
// remove file extension from filePath, if there is one
gSaveFilePath = gSaveFilePath.replace(/\....$/,'');
// calculate the size of image we need
var width = gGridPoints * gGridPoints;
var height = gGridPoints;
if (mode == DocumentMode.CMYK)
height = gGridPoints*gGridPoints;
// duplicate the user document so we don't mess it up in any way
tempDoc = app.activeDocument.duplicate("temporary");
// make the temporary document active
app.activeDocument.name = tempDoc;
// to avoid resizing existing document views in tabbed mode
MoveDocumentToNewWindow();
// convert 8 bit documents to 16 bit/channel for improved quality of merged adjustments
if (bitsPerChannel == 8)
ConvertTo16Bit();
depth = BitsPerChannelType.SIXTEEN;
// resize the temporary canvas to our target size
resizeDocumentInPixels( width, height )
// select background layer
tempDoc.activeLayer = tempDoc.backgroundLayer;
// render lookup base grid
var worked = doRenderGrid( gGridPoints );
if (worked != true)
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
return; // error should have already been shown, and there is not much we can do
// do not flatten here -- the export automatically gets flattened data
// and we may need layers for LAB->RGB conversion below
// export the chosen formats
worked = doExportLUTs( gSaveFilePath );
if (worked != true)
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
return; // error should have already been shown, and there is not much we can do
// for LAB documents to export 3DLUT (which are inherently RGB), we have to do additional work
// As a bonus, this works for CMYK as well!
if ( mode != DocumentMode.RGB )
var filePath = gSaveFilePath + "RGB";
var oldDitherState = GetColorConversionDitherState();
try
SetColorConversionDither(false);
const targetProfileName = "sRGB IEC61966-2.1";
// new document temp2 in sRGB, matching depth of original
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.PIXELS;
tempDoc2 = app.documents.add( width, gGridPoints, 72, "temp2",
NewDocumentMode.RGB, DocumentFill.WHITE,
1.0, depth, targetProfileName );
app.preferences.rulerUnits = originalRulerUnits;
// make the new doc active
app.activeDocument.name = tempDoc2;
// to avoid resizing existing document views in tabbed mode
MoveDocumentToNewWindow();
// insert grid
worked = doRenderGrid( gGridPoints );
if (worked == true)
tempDoc2.selection.selectAll();
tempDoc2.activeLayer = tempDoc2.backgroundLayer;
tempDoc2.selection.copy();
tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
tempDoc2 = null;
// make sure temp1 is active
app.activeDocument.name = tempDoc;
// resize for RGB grid
resizeDocumentInPixels( width, gGridPoints );
tempDoc.selection.selectAll();
tempDoc.paste(true);
PurgeClipboard(); // so we don't leave an odd, large item on the clipboard
tempDoc.selection.deselect();
tempDoc.flatten();
// convert temp1 to sRGB
tempDoc.convertProfile( targetProfileName, Intent.RELATIVECOLORIMETRIC, true, false );
// export the chosen formats
worked = doExportLUTs( filePath );
// at this point we still have to clean up, even if the call failed, so fall through
else
tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/UnableToConvertRGB=Unable to convert image to RGB because ");
alert( str + e + " : " + e.line );
if (tempDoc2 != null) tempDoc2.close( SaveOptions.DONOTSAVECHANGES );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our script
// always reset the dither state
SetColorConversionDither( oldDitherState );
PurgeClipboard(); // so we don't leave an odd, large item on the clipboard
} // if not RGB
// always close temp document without saving
tempDoc.close( SaveOptions.DONOTSAVECHANGES );
catch (e)
if ( e.number != 8007 ) { // don't report error on user cancel
var str = localize("$$$/JavaScripts/Export3DLUT/UnableToExport=Unable to export LUT because ");
alert( str + e + " : " + e.line );
// always close temp document without saving
if (tempDoc != null) tempDoc.close( SaveOptions.DONOTSAVECHANGES );
gScriptResult = 'cancel'; // quit, returning 'cancel' (dont localize) makes the actions palette not record our scriptHi blabla12345,
(untested and without warranty)
replace this line:
const sSaveCUBE = "CUBE";
with this:
const sSaveCUBE = "cube";
Have fun -
Apple Mail, is there a way to change the default time-out?
This has been puzzling me for some time and I have not found a solution. The problem which I also posted in the Mail forum (though I think that if there is a positive answer it will come through here) is as follows:
I have an email account with on my company's mail server which is actually a Novell Netware server with a POP3 service. When using mail to send mail, I have no problems. When using mail to recieve mail, well, sometimes it gets the mail, and sometimes it does not. Usually, I can recieve mail for two or three weeks then it just stops working. No changes to my system, no updates or anything, I recieve email at one point in the day and then 15 minutes later - nothing. In the Activity Monitor, I see "Connecting to ..." then "Sending Password" then "Checking for Messages", then (after a while) it beeps as if it did not find any messages to download (no error!).
Some weeks later, after suffering with webmail, suddenly, it works again. This usually coincides with maintenance on the server, but not always. It also seems to correspond with a general improvement of the server performance. But eventually, the cycle starts over again with mail suddenly not able to find any new messages for that account.
I use dial-up at home, ethernet LAN at work, and DSL at our satellite offices. When it works on one it works on all. Also note that my other email accounts (not in any way connected to my company) work as they should at all times and in each setting.
Is it possible that mail simply times out before the messages are discovered. The Novell server used for mail is by no means known for its performance. If so, is there anyway to change the default timeout in mail for "Checking for Messages"?
Things I have tried:
I have dumped the "MessageUidsAlreadyDownloaded" and "MessageUidsAlreadyDownloaded2" files to no avail.
I have changed computers (I recently upgraded from a ti400), reinstalled the OS, upgraded from 10.2.8 to 10.3.x to 10.4.3, and removed and recreated the mail account (multiple times), all to no avail.
Based on the above observations, I feel that it may be that "Mail's" "Get-mail" function is timing out before new messages are discovered on a very slow server. Is there any way to change the default time-out to evaluate this hypothesis?
Any help would be appreciated.
KraigI already thought of that one. I deleted my account from there. But it didn't default to the other one. It just told me I needed to add an account. Thanks tho
-
Any Way to Change Thickness of Connector Lines for all lines of a Chart?
Post Author: ScottL
CA Forum: Charts and Graphs
Hi All,
I am trying to change the thickness of a Chart's Connector Lines for all lines of a chart and cannot find a way to accomplish this. I can go into Report Preview and individually change the thickness one at a time, but what if I do not know how many lines I will have (as in a Line Chart) ? I can't find a way to do this through Crystal Reports XI.
Many thanks in advance!
ScottI think it's even easier to just match frame the "source file"... put your playhead on the clip you want to speed change in your sequence. Then type optioncmdf. Perform the speed change in the Viewer, then simply cut it in... Might help to put it up above the older, use the double arrow selection tool facing right to move the clips past this change later... pull the upper track speed changed clip down over the old, and viola.
Gotta say though, it's a lot easier to perform the speed change in the Viewer, and edit it all in as you go rather than doing it after you've put the clip in a sequence. (not always possible to determine what the speed change should be maybe, but sure easier.... FCP 7 handles this problem a lot better for sure, and worth the upgrade price if your machine is compatible.
Jerry
Maybe you are looking for
-
Re-installing Linksys Connect on laptop after new hard drive installed
I have a E4200 router and had Connect loaded on my laptop. My hard drive crashed and needed replacement. I had no problem signing on to my WiFi once I got the new hard drive installed. With the new hard drive, I now do not have Linksys Connect instal
-
Radio button in master-detail tables.
I work with ADF, Struts, JSP of JDeveloper10G 10.1.2.0.0 (Build 1811). My DataPage has two master detail tables. Master table has radio button in each row. If click on radio button of master table, information on detal table no change. But with N
-
How to turn off magnetic timeline in iMac?
Hi there, I am currently editing a movie and when I try to move a clip to fit a certain part of the audio, it won't let me move it. How do I ovveride this?
-
How to create an user input variable for customer exit variable? - BW3.5
Hi Guru, I have a requirement for the selection period of my reports. There are 3 possible reporting periods which should be user selectable: 1. Month: Current reporting month 2. Fiscal Year to Date 3. Project Year to Date Here I need 2 variable to d
-
A last one for this week (hopefully)... Drop a formula node on the BD and show its label: Now resize the Formula Node from the top: Oops! The formula node got stuck in its original position. I do not know of other objects label behaving like that. Te