Customizing rulset of flexPMD 1.2
Hi,
I am totally new to FlexPMD and iam happy that i got succeeded in executing FlexPMD commandline tool version 1.2 for my flex project and take care of the warnings.
I just wanted to customize or add some extra rules in addition to the existing ruleset available with version 1.2
I read the instructions given in http://opensource.adobe.com/wiki/display/flexpmd/Get+Source+Code to download the source code and followed as per mentioned.
I got the entire source code (including branch, trunk,..etc)..As I mentioned before since i wanted to customize the rule available with version 1.2, i thought i need to edit the project flex-pmd-ruleset of 1.2 which is found inside "trunk" folder.
Before doing that, Iam supposed to make the environment ready as mentioned in http://opensource.adobe.com/wiki/display/flexpmd/Developer+Documentation.
while i tried to execute the mvn package command into flex-pmd-parent folder, i did not have internet access to my machine..
is the command internally access any resource from net in order to build the project?
i got the following error msg after a long list of warnings......
[INFO] ------------------------------------------------------------------------
[INFO] Building Adobe Flex PMD Java Parent 1.2
[INFO] ------------------------------------------------------------------------
Downloading: http://repository.codehaus.org/org/apache/maven/plugins/maven-compi
ler-plugin/maven-metadata.xml
Downloading: http://mc-repo.googlecode.com/svn/maven2/releases/org/apache/maven/
plugins/maven-compiler-plugin/maven-metadata.xml
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-compil
er-plugin/maven-metadata.xml
[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-compiler-pl
ugin/maven-metadata.xml from dist.codehaus.org (http://dist.codehaus.org): No co
nnector available to access repository dist.codehaus.org (http://dist.codehaus.o
rg) of type legacy using the available factories WagonRepositoryConnectorFactory
[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-compiler-pl
ugin/maven-metadata.xml from repository.codehaus.org (http://repository.codehaus
.org): Error transferring file: repository.codehaus.org
[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-compiler-pl
ugin/maven-metadata.xml from mc-release (http://mc-repo.googlecode.com/svn/maven
2/releases): Error transferring file: mc-repo.googlecode.com
[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-compiler-pl
ugin/maven-metadata.xml from central (http://repo1.maven.org/maven2): Error tran
sferring file: repo1.maven.org
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] Adobe Flex PMD Java Parent ........................ FAILURE [5.375s]
[INFO] As3 Parser API .................................... SKIPPED
[INFO] As3 Maven plugin Utils ............................ SKIPPED
[INFO] Adobe Flex PMD RuleSet test resources ............. SKIPPED
[INFO] Adobe Flex PMD Files .............................. SKIPPED
[INFO] As3 Parser ........................................ SKIPPED
[INFO] Adobe Flex PMD RuleSet API ........................ SKIPPED
[INFO] Adobe Flex PMD RuleSet ............................ SKIPPED
[INFO] Adobe Flex CPD (Copy and Past Detector) ........... SKIPPED
[INFO] Adobe Flex CPD Ant task ........................... SKIPPED
[INFO] Adobe Flex PMD Core ............................... SKIPPED
[INFO] Adobe Flex CPD Maven plugin ....................... SKIPPED
[INFO] Adobe Flex PMD Command line API ................... SKIPPED
[INFO] Adobe Flex CPD Command line ....................... SKIPPED
[INFO] Adobe Flex PMD Ant task ........................... SKIPPED
[INFO] Adobe Flex PMD Maven plugin ....................... SKIPPED
[INFO] Adobe Flex PMD Command line ....................... SKIPPED
[INFO] Adobe Flex Metrics ................................ SKIPPED
[INFO] Adobe Flex Metrics command line ................... SKIPPED
[INFO] Adobe Flex Metrics Ant task ....................... SKIPPED
[INFO] Adobe Flex Metrics Maven plugin ................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.985s
[INFO] Finished at: Wed Nov 24 18:07:50 IST 2010
[INFO] Final Memory: 3M/6M
[INFO] ------------------------------------------------------------------------
[ERROR] Error resolving version for plugin 'org.apache.maven.plugins:maven-compi
ler-plugin' from the repositories [local (C:\Documents and Settings\pcuser\.m2\r
epository), dist.codehaus.org (http://dist.codehaus.org), repository.codehaus.or
g (http://repository.codehaus.org), mc-release (http://mc-repo.googlecode.com/sv
n/maven2/releases), central (http://repo1.maven.org/maven2)]: Plugin not found i
n any plugin repository -> [Help 1]
I even tried the same mvn package command for flex-pmd-parent for version 1.1 inside trunk for which i got the following error....
[ERROR] The build could not read 26 projects -> [Help 1]
[ERROR]
[ERROR] The project com.adobe.ac:as3-parser:1.1 (F:\FlexPMD Source code\tags\1
.1\as3-parser\pom.xml) has 1 error
[ERROR] Non-resolvable parent POM: Could not transfer artifact com.adobe.ac:
flex-pmd:pom:1.1 from central (http://repo1.maven.org/maven2): Error transferrin
g file: repo1.maven.org and 'parent.relativePath' points at wrong local POM @ li
ne 8, column 11: Unknown host repo1.maven.org -> [Help 2]
[ERROR]
[ERROR] The project com.adobe.ac:as3-parser-api:1.1 (F:\FlexPMD Source code\ta
gs\1.1\as3-parser-api\pom.xml) has 1 error
[ERROR] Non-resolvable parent POM: Could not transfer artifact com.adobe.ac:
flex-pmd:pom:1.1 from central (http://repo1.maven.org/maven2): Error transferrin
g file: repo1.maven.org and 'parent.relativePath' points at wrong local POM @ li
ne 7, column 11: Unknown host repo1.maven.org -> [Help 2]
i also tried opening the project files in eclipse galileo without executing mvn package command ...i noticed many errors in import statements where the actual package referred does not even exist in the code...pls refer the attached image..is the source code downloaded is unstable...
where am i going wrong...pls help me with a detailed procedure to set the environment so that i can customize the ruleset...
The documentation has not been updated since early days of planning, I am not even sure if it is still valid as in my experience it is hardly ever used.
If you are version 11.1.2 then I would assume it would be the file in the planning product installation directory.
Cheers
John
http://john-goodwin.blogspot.com/
Similar Messages
-
FlexPMD 1.2 and Eclipse Plug-In
Hi, I'm probably missing something simple here but Flex PMD (using the eclipse plugin) isn't working for me: Nothing gets populated in either the Flex PMD view or the CPD view but the views do open when I run Flex PMD.
My configuration is:
FlexPMD command line installation: C:\Software\FlexPmdAll\flex-pmd-command-line-1.2.jar
FlexPMD custom ruleset: C:\Software\FlexPmdAll\pmd.xml
Java command line: java -Xms512m -Xmx512m
FlexCPD command line installation: C:\Software\FlexPmdAll\flex-pmd-cpd-command-line-1.2.jar
There are no spaces in my workspace path, it is simply: C:\Views\ProjectNameHere\
Using these settings I get a pop-up error message saying: 'add markers job' has encountered a problem.
Expanding on this error gives me: An internal error occurred during: "add markers job". Index: 0, Size: 0
If I change the Java command line (a tip found on the web) to: java -Xms512m -Xmx512m -Djava.io.tmpdir=C:\Users\NameGoesHere\AppData\Local\Temp
I get the same error.
If I remove the custom ruleset value no error message shows when I run Flex PMD but nothing happens either.
If you have any idea what's wrong let me know. The open source website is offline and I can't find any reference sites that don't link to it for an answer.
Cheers,
TonyLooks like you were right, I see a File Not Found Exception for a pmd.xml file:
java.io.FileNotFoundException: C:\Users\NameHere\AppData\Local\Temp\flexpmd2207206954593694710dir\pmd.xml (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at com.adobe.ac.pmd.eclipse.flexpmd.cmd.FlexPMDResultsParser.parse(FlexPMDResultsParser.java :112)
at com.adobe.ac.pmd.eclipse.flexpmd.cmd.FlexPMD.processResultsFile(FlexPMD.java:180)
at com.adobe.ac.pmd.eclipse.flexpmd.cmd.FlexPMD.process(FlexPMD.java:68)
at com.adobe.ac.pmd.eclipse.flexpmd.cmd.FlexPMD.process(FlexPMD.java:1)
at com.adobe.ac.pmd.eclipse.flexpmd.actions.RunFlexPMDJob.run(RunFlexPMDJob.java:83)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Followed by what looks to be an eclipse-specific Unhandled event loop exception caused by a NPE at com.adobe.ac.pmd.eclipse.flexpmd.actions.RunFlexPmdAction$2.run(RunFlexPmdAction.java:145 )
I wonder why it is looking for a pmd.xml file in a temp directory? Note that these errors are when FLexPMD is run withoit any Java arguments specified. When I run FlexPMD with the Java arguments specified I get a third error message the same as the one mentioned above (Class Not Found).
Also, if I include a custom ruleset, it still throws the FileNotFoundException and lists another temp folder in AppData\Local\Temp
Cheers,
Tony -
[ANN] FlexPMD 1.2
FlexPMD 1.2 has been released !
More information here
Enjoy
XavierLooks like you were right, I see a File Not Found Exception for a pmd.xml file:
java.io.FileNotFoundException: C:\Users\NameHere\AppData\Local\Temp\flexpmd2207206954593694710dir\pmd.xml (The system cannot find the file specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at com.adobe.ac.pmd.eclipse.flexpmd.cmd.FlexPMDResultsParser.parse(FlexPMDResultsParser.java :112)
at com.adobe.ac.pmd.eclipse.flexpmd.cmd.FlexPMD.processResultsFile(FlexPMD.java:180)
at com.adobe.ac.pmd.eclipse.flexpmd.cmd.FlexPMD.process(FlexPMD.java:68)
at com.adobe.ac.pmd.eclipse.flexpmd.cmd.FlexPMD.process(FlexPMD.java:1)
at com.adobe.ac.pmd.eclipse.flexpmd.actions.RunFlexPMDJob.run(RunFlexPMDJob.java:83)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Followed by what looks to be an eclipse-specific Unhandled event loop exception caused by a NPE at com.adobe.ac.pmd.eclipse.flexpmd.actions.RunFlexPmdAction$2.run(RunFlexPmdAction.java:145 )
I wonder why it is looking for a pmd.xml file in a temp directory? Note that these errors are when FLexPMD is run withoit any Java arguments specified. When I run FlexPMD with the Java arguments specified I get a third error message the same as the one mentioned above (Class Not Found).
Also, if I include a custom ruleset, it still throws the FileNotFoundException and lists another temp folder in AppData\Local\Temp
Cheers,
Tony -
FlexPMD 1.1 not working on Flex Builder 3, SDK 3.5 (Mac OS X)?
I have FlexPMD 1.1 installed at Applications/FlexPMD/ with the following preferences:
FlexPMD command line installations: /Applications/FlexPMD/flex-pmd-command-line-1.1.jar
FlexPMD custom ruleset:
Java command line: java -Xmx256m
FlexCPD command line installation: /Applications/FlexPMD/flex-pmd-cpd-command-line-1.1.jar
Minimum tokens: 25
If I right-click on my "src" folder and select "FlexPMD > Run FlexPMD" the progress indicator looks busy for 2 seconds then it stops, with nothing in the FlexPMD Outline or View. One the other hand, "Find suspect cut and paste" does work.
Any ideas?
Mac OS X (10.6.3)
Flex Builder 3 (3.0.214193)
Flex SDK 3.5Yes, my project workspace path does contain white-spaces. Do I need to change something in the FlexPMD "Java command line"?
[Edit] Never mind. I found the bug entry and saw your notes that the fix will be available in the next release. The question now, is when will the next release be available?
Message was edited by: ejstembler73 -
Custom Rules - picking obj.functionCall(argumentsValue)
Hello FlexPMD Community,
I am trying to write some custom rules for picking:
private function downloadFile():void
fileRef.download("/abc/xyz");
The best, I could do is:
private
static final String METHOD_NAME[] = {"download"};
private static final String SECURITY[] = {"FileReference"};
@Override
protected final void findViolations( final IClass classNode ){
for(final IFunction function : classNode.getFunctions()) {
if(function.getBody().findPrimaryStatementsFromNameInChildren(SECURITY).size() > 0) {
for(final IParserNode functionCall : function.getBody().findPrimaryStatementsFromNameInChildren(METHOD_NAME)) {
addViolation( functionCall );
I was hoping to be able to traverse AST with objRef.functionCall and than retrieve the value /abc/xyz.
Any help greatly appreciated.
- MansiXavier,
I know you said there is no way for a finer granular control over AST traversal at the moment. I see this feature extremely valuable.
What I am looking at is:
If I can say for below function call:
Security.allowDomain("*")
(className/objectname).functionName(value). If I can retrieve this value, it would be extremely useful, to do lot of string comparisions on these values.
Also, searching as PRIMARIES, which as per my understanding is a <regex> search within a function, generates some noise. Thought would like to compliment, not a lot of noise as we are still doing it within a function.
If we have that granular control over our AST traversal, it would be phenomenal. Going ahead, we might be able to add some dataflow analysis feature too.
Let me know, if you find it valuable and you want me to add a JIRA request.
Btw, I am in love with FlexPMD and find it extremely useful.
- Mansi -
Custom purchase requsitionto vendor open and cleared payment report
dear all i develop report but i cant ableto show in that open amount and cleared amount of vender in that report so please see this report and feedback me for logic to show open and clear amount of vendor purchase orderwise or vendorwise
report zpo_purchase_history no standard page heading message-id 00.
TABLES : bsik, bsak, lfa1, lfb1, skb1, t001, bapifvdexp_vzzbepp.
type-pools:slis,ICON.
types :begin of ty_po,
banfn type eban-banfn,
"Purchase Requisition Number
bnfpo type eban-bnfpo,
"Item Number of Purchase Requisition
ekgrp type eban-ekgrp, "Purchasing Group
badat type eban-badat,
"Requisition (Request) Date
menge type eban-menge,
KNTTP TYPE EBAN-KNTTP,
PSTYP type eban-PSTYP,
"Purchase Requisition Quantity
meins type eban-meins,
"Purchase Requisition Unit of Measure
lifnr type ekko-lifnr, "Vendor Account Number
bedat type ekko-bedat, "Purchasing Document Date
ebeln type ekpo-ebeln,
"Purchasing Document Number
ebelp type ekpo-ebelp,
"Item Number of Purchasing Document
matkl type ekpo-matkl, "Material Group
mtart type ekpo-mtart, "Material Type
matnr type ekpo-matnr, "Material Number
txz01 type ekpo-txz01, "Short Text
menge1 type ekpo-menge, "Purchase Order Quantity
meins1 type ekpo-meins,
"Purchase Order Unit of Measure
balqty type ekpo-menge, "Balance Quantity
netpr type ekpo-netpr,
"Net Price in Purchasing Document
peinh type ekpo-peinh, "Price Unit
mblnr type mseg-mblnr,
"Number of Material Document
zeile type mseg-zeile, "Item in Material Document
menge2 type mseg-menge, "GR Quantity
meins2 type mseg-meins, "GR Unit of Measure
werks type mseg-werks, "Plant
charg type mseg-charg, "Batch
belnr type rbkp-belnr,
"Document Number of an Invoice Document
bldat type ekbe-bldat, "Document Date in Document
belnr_b type rbkp-belnr,
SHKZG type ekbe-SHKZG , "Debit/Credit Indicator
DMBTR type bsik-dmbtr, "Amount in Local Currency
DMBTR_C type bsAk-dmbtr, "Amount in Local Currency
thick(10) type c, "Thickness
width(10) type c, "Width
length(10) type c, "Length
grade(10) type c, "Grade
BELNR_d type bseg-belnr,
xblnr type bkpf-xblnr,
awkey type bkpf-awkey,
RMWWR type rbkp-RMWWR,
WMWST1 type rbkp-WMWST1,
end of ty_po.
types :begin of ty_ekko,
ebeln type ekko-ebeln,
lifnr type ekko-lifnr,
bedat type ekko-bedat,
end of ty_ekko.
types:begin of ty_ekpo,
ebeln type ekpo-ebeln,
ebelp type ekpo-ebelp,
matnr type ekpo-matnr,
txz01 type ekpo-txz01,
menge type ekpo-menge,
meins type ekpo-meins,
netpr type ekpo-netpr,
peinh type ekpo-peinh,
banfn type ekpo-banfn,
bnfpo type ekpo-bnfpo,
mtart type ekpo-mtart,
end of ty_ekpo.
types :begin of ty_eban,
banfn type eban-banfn,
bnfpo type eban-bnfpo,
matnr type eban-matnr,
menge type eban-menge,
meins type eban-meins,
end of ty_eban.
types : begin of ty_ekbe,
ebeln type ekbe-ebeln,
ebelp type ekbe-ebelp,
belnr type ekbe-belnr,
bldat type ekbe-bldat,
gjahr type ekbe-gjahr,
buzei type ekbe-buzei,
matnr type ekbe-matnr,
DMBTR type ekbe-dmbtr,
shkzg type ekbe-shkzg,
end of ty_ekbe.
types : begin of ty_mseg,
mblnr type mseg-mblnr,
mjahr type mseg-mjahr,
zeile type mseg-zeile,
menge type mseg-menge,
meins type mseg-meins,
ebeln type mseg-ebeln,
ebelp type mseg-ebelp,
matnr type mseg-matnr,
werks type mseg-werks,
charg type mseg-charg,
end of ty_mseg.
types : begin of ty_rbkp,
belnr type rbkp-belnr,
gjahr type rbkp-gjahr,
bldat type rbkp-bldat,
lifnr type rbkp-lifnr,
ZUONR type rbkp-ZUONR,
RMWWR type rbkp-RMWWR,
WMWST1 type rbkp-WMWST1,
end of ty_rbkp.
types : begin of ty_bseg,
bukrs type bseg-bukrs,
belnr type bseg-belnr,
gjahr type bseg-gjahr,
buzei type bseg-buzei,
valut type bseg-valut,
wrbtr type bseg-wrbtr ,
augbl type bseg-augbl,
matnr type bseg-matnr,
lifnr type bseg-lifnr,
ebeln type bseg-ebeln,
end of ty_bseg.
types : begin of ty_rseg,
belnr type rseg-belnr,
gjahr type rseg-gjahr,
ebeln type rseg-ebeln,
ebelp type rseg-ebelp,
matnr type rseg-matnr,
bukrs type rseg-bukrs,
end of ty_rseg.
types : begin of ty_bsik,
belnr type bsik-belnr,
buzei type bsik-buzei,
DMBTR type bsik-DMBTR,
budat type bsik-budat,
shkzg type bsik-shkzg,
ebeln type bsik-ebeln,
lifnr type bsik-lifnr,
end of ty_bsik.
types : begin of ty_bsak,
belnr type bsak-belnr,
lifnr type bsak-lifnr,
ebeln type bsak-ebeln,
DMBTR_C type bsak-DMBTR,
ZUONR type bsak-ZUONR,
end of ty_bsak.
types: begin of ty_bkpf,
BELNR type bkpf-belnr,
xblnr type bkpf-xblnr,
awkey type bkpf-awkey,
end of ty_bkpf.
data: it_po type standard table of ty_po,
it_ekko type standard table of ty_ekko,
it_ekpo type standard table of ty_ekpo,
it_eban type standard table of ty_eban,
it_ekbe type standard table of ty_ekbe,
it_mseg type standard table of ty_mseg,
it_rbkp type standard table of ty_rbkp,
it_rseg type standard table of ty_rseg,
it_bseg type standard table of ty_bseg,
it_bsik type STANDARD TABLE OF ty_bsik with header line,
it_bsak type STANDARD TABLE OF ty_bsak,
it_bkpf type standard table of ty_bkpf,
wa_po type ty_po,
wa_ekko type ty_ekko,
wa_ekpo type ty_ekpo,
wa_eban type ty_eban,
wa_mseg type ty_mseg,
wa_rbkp type ty_rbkp,
wa_rseg type ty_rseg,
wa_bseg type ty_bseg,
wa_ekbe type ty_ekbe,
wa_bsik type ty_bsik,
wa_bsak type ty_bsak,
wa_bkpf type ty_bkpf.
data: it_fcat type slis_t_fieldcat_alv,
it_lshead type slis_t_listheader,
it_sort type slis_t_sortinfo_alv,
wa_fcat type slis_fieldcat_alv,
wa_lshead type slis_listheader,
wa_layout type slis_layout_alv,
wa_sort type slis_sortinfo_alv.
data :it_cl_data like table of clobjdat,
wa_cl_data like clobjdat.
data: values(10) type n.
data: value1(4) type N.
data: c_matkl type ekpo-matkl,
c_matnr type ekpo-matnr,
c_ekgrp type eban-ekgrp,
c_badat type eban-badat,
c_index type sy-tabix,
c_grmenge type mseg-erfmg,
c_low(10) type c,
c_high(10) type c,
c_date type string,
c_bukrs type ekko-bukrs,
c_WERKS type eban-WERKS.
data: gd_date(10).
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
*********Selection screen variables*********
selection-screen:begin of block b1 with frame title text-001.
select-options: s_bukrs for c_bukrs DEFAULT 'bmp1',
s_WERKS for c_WERKS,
s_matnr for c_matnr DEFAULT 'rm-01',
s_matkl for c_matkl ,
s_badat for c_badat ,"obligatory,
s_ekgrp for c_ekgrp.
parameters: ch_bal as checkbox.
selection-screen:end of block b1.
*initialization.
* PERFORM EVENT_CALL.
* PERFORM POPULATE_EVENT.
start-of-selection.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
perform getdata.
perform setdata.
perform fieldcat.
perform display.
*& Form GETDATA
form getdata .
select a~BANFN
a~bnfpo
a~ekgrp
a~badat
a~KNTTP
a~PSTYP
b~ebeln
b~ebelp
b~matkl
b~matnr
b~bukrs
into corresponding fields of table it_po
from eban as a inner join ekpo as b
on a~banfn = b~banfn and
a~bnfpo = b~bnfpo AND
A~KNTTP = B~KNTTP and
a~PSTYP = b~PSTYP
where a~badat in s_badat and
a~ekgrp in s_ekgrp and
a~WERKS in s_WERKS and
b~matnr in s_matnr and
b~matkl in s_matkl and
b~bukrs in s_bukrs and
b~loekz <> 'L' and
a~loekz <> 'X'.
if it_po[] is not initial.
select ebeln
ebelp
matnr
txz01
menge
meins
netpr
peinh
banfn
bnfpo
mtart
from ekpo into table it_ekpo
for all entries in it_po
where ebeln = it_po-ebeln and
ebelp = it_po-ebelp and
loekz <> 'L'.
select banfn
bnfpo
matnr
menge
meins
from eban into table it_eban
for all entries in it_po
where banfn = it_po-banfn and
bnfpo = it_po-bnfpo and
loekz <> 'X'.
if it_ekpo[] is not initial.
select ebeln
lifnr
bedat
from ekko into table it_ekko
for all entries in it_ekpo
where ebeln = it_ekpo-ebeln.
select ebeln
ebelp
belnr
bldat
gjahr
buzei
matnr
DMBTR
shkzg
from ekbe into table it_ekbe
for all entries in it_ekpo
where ebeln = it_ekpo-ebeln and
ebelp = it_ekpo-ebelp .
*if it_ekbe-shkzg = 'H'.
**ekbe-dmbtr = ekbe-dmbtr * -1.
**ekbe-menge = ekbe-menge * -1.
*endif.
* select belnr
* gjahr
* ebeln
* ebelp
* from bseg into table it_bseg
* for all entries in it_ekpo
* where ebeln = it_ekpo-ebeln and
* ebelp = it_ekpo-ebelp.
select belnr
gjahr
ebeln
ebelp
matnr
bukrs
from rseg into table it_rseg
for all entries in it_ekpo
where ebeln = it_ekpo-ebeln and
ebelp = it_ekpo-ebelp.
endif.
if it_ekbe[] is not initial.
select mblnr
mjahr
zeile
menge
meins
ebeln
ebelp
matnr
werks
charg
from mseg into table it_mseg
for all entries in it_ekbe
where mblnr = it_ekbe-belnr and
mjahr = it_ekbe-gjahr and
zeile = it_ekbe-buzei and
bwart = '101'.
endif.
if it_rseg[] is not initial.
select belnr
gjahr
bldat
lifnr
ZUONR
RMWWR
WMWST1
from rbkp into table it_rbkp
for all entries in it_rseg
where belnr = it_rseg-belnr.
endif.
*if it_rseg[] is not initial.
* SELECT bukrs
* belnr
* gjahr
* buzei
* valut
* wrbtr
* augbl
* matnr
* lifnr
* ebeln
* INTO TABLE it_bseg
* FROM bseg
* FOR ALL ENTRIES IN it_rseg
* WHERE bukrs = it_rseg-bukrs and ebeln = it_rseg-ebeln and mwskz = ''.
*endif.
*loop at it_BKPF into wa_BKPF.
* values = wa_rbkp-belnr.
* value1 = wa_rbkp-gjahr.
data: aekey_1 type string .
*CONCATENATE values value1 into aekey_1.
* if it_BSEG[] is not initial.
*MESSAGE aekey_1 type 'I'.
SELECT single belnr xblnr awkey into wa_bkpf
from bkpf
where awkey = aekey_1.
SELECT SINGLe belnr
buzei
dmbtr
budat
shkzg
ebeln
lifnr
FROM bsik
INTO CORRESPONDING FIELDS OF wa_bsik
*FOR ALL ENTRIES IN it_bseg
WHERE
bukrs in s_bukrs and
lifnr = wa_rbkp-lifnr
and
*AND gjahr = it_bseg-gjahr
* AND
belnr = wa_bkpf-belnr.
insert wa_bsik into table it_bsik.
CLEAR wa_bsik.
CLEAR it_bsik.
*endloop.
* and ebeln = it_bseg-ebeln .
* select BELNR
** SHKZG
** DMBTR
* from bkpf into table it_bkpf
* for ALL ENTRIES IN it_rbkp
* where belnr = it_rbkp-belnr.
* ENDif.
IF IT_bseg[] IS NOT INITIAL.
select belnr
LIFNR
ebeln
DMBTR
ZUONR
from bsik into table it_bsik
for all entries in it_bseg
where belnr = it_bseg-belnr.
select belnr
LIFNR
ebeln
DMBTR
ZUONR
from bsak into table it_bsak
for all entries in it_bseg
where belnr = it_bseg-belnr.
ENDIF.
else.
message s002.
leave list-processing.
endif.
endform. " GETDATA
*& Form SETDATA
form setdata .
clear wa_po.
loop at it_po into wa_po.
c_index = sy-tabix.
********Calculate PR Quantity**********
clear wa_eban.
read table it_eban into wa_eban
with key banfn = wa_po-banfn
bnfpo = wa_po-bnfpo.
if sy-subrc eq 0.
move:wa_eban-menge to wa_po-menge,
wa_eban-meins to wa_po-meins.
endif.
********Calculate PO Quantity**********
clear wa_ekpo.
read table it_ekpo into wa_ekpo
with key banfn = wa_po-banfn
bnfpo = wa_po-bnfpo .
if sy-subrc eq 0.
move:wa_ekpo-txz01 to wa_po-txz01,
wa_ekpo-netpr to wa_po-netpr,
wa_ekpo-peinh to wa_po-peinh,
wa_ekpo-mtart to wa_po-mtart,
wa_ekpo-menge to wa_po-menge1,
wa_ekpo-meins to wa_po-meins1.
endif.
********Calculate Balance Quantity******
clear wa_mseg.
loop at it_mseg into wa_mseg
where ebeln = wa_po-ebeln and
ebelp = wa_po-ebelp.
c_grmenge = c_grmenge + wa_mseg-menge.
endloop.
move:wa_mseg-mblnr to wa_po-mblnr,
c_grmenge to wa_po-menge2,
wa_mseg-meins to wa_po-meins2,
wa_mseg-werks to wa_po-werks,
wa_mseg-charg to wa_po-charg.
wa_po-balqty = wa_eban-menge - c_grmenge.
clear : wa_rseg,wa_rbkp.
read table it_rseg into wa_rseg with key
ebeln = wa_mseg-ebeln
ebelp = wa_mseg-ebelp.
read table it_rbkp into wa_rbkp
with key belnr = wa_rseg-belnr
gjahr = wa_rseg-gjahr.
if sy-subrc eq 0.
move : wa_rbkp-belnr to wa_po-belnr,
wa_rbkp-bldat to wa_po-bldat,
wa_rbkp-RMWWR to wa_po-RMWWR,
WA_RBKP-WMWST1 TO WA_PO-WMWST1.
endif.
read table it_bseg into wa_bseg with key
ebeln = wa_rseg-ebeln
bukrs = wa_rseg-bukrs.
if sy-subrc eq 0.
move wa_bseg-belnr to wa_po-belnr_d.
endif.
* read table it_bkpf into wa_bkpf
* with key belnr = wa_ekbe-belnr.
* read table it_bseg into wa_bseg
* with key belnr = wa_bkpf-belnr.
CLEAR wa_bsik.
clear it_bsik.
read table it_bsik into wa_bsik
with key belnr = wa_bkpf-belnr.
* if wa_bsik-shkzg = 'H'.
* wa_bsik-DMBTR = wa_bsik-DMBTR * 1.
* endif.
if sy-subrc eq 0.
move : wa_bsik-belnr to wa_po-belnr,
wa_bsik-DMBTR to wa_po-DMBTR.
endif.
* clear wa_bsik.
* read table it_bsik into wa_bsik
* with key belnr = wa_bseg-belnr.
* if sy-subrc eq 0.
* move : wa_bsik-DMBTR to wa_po-DMBTR.
* endif.
*clear wa_bsak.
* read table it_bsak into wa_bsak
* with key belnr = wa_bseg-belnr.
* if sy-subrc eq 0.
* move : wa_bsak-DMBTR_C to wa_po-DMBTR_C.
* endif.
*clear : wa_rbkp.
*loop at it_bsik into wa_bsik.
*read table it_bsik into wa_bsik with key belnr = wa_rbkp-belnr.
*if sy-subrc eq 0.
* move : wa_bsik-DMBTR to wa_po-DMBTR.
* endif.
*endloop.
*********Assign Vendor,PO Date*********
clear wa_ekko.
read table it_ekko into wa_ekko
with key ebeln = wa_po-ebeln.
if sy-subrc eq 0.
move:wa_ekko-lifnr to wa_po-lifnr,
wa_ekko-bedat to wa_po-bedat.
endif.
*clear wa_ekko.
*read table it_ekko into wa_ekko
*with key lifnr = wa_po-lifnr.
*if sy-subrc eq 0.
* move: wa_bsik-DMBTR to wa_po-DMBTR.
* endif.
* call function 'ZSD_BATCH_CLASSIFICATION_DATA'
* exporting
** ch_charg = wa_po-charg
* ch_matnr = wa_po-matnr
* ch_werks = wa_po-werks
* tables
* cl_data = it_cl_data
** I_SEL_CHARACTERISTIC =
loop at it_cl_data into wa_cl_data.
if wa_cl_data-ausp1 ne '?'.
if wa_cl_data-atnam eq 'THICKNESS'.
move wa_cl_data-ausp1 to wa_po-thick.
elseif wa_cl_data-atnam eq 'LENGTH'.
move wa_cl_data-ausp1 to wa_po-length.
elseif wa_cl_data-atnam eq 'WIDTH'.
move wa_cl_data-ausp1 to wa_po-width.
elseif wa_cl_data-atnam eq 'GRADE'.
move wa_cl_data-ausp1 to wa_po-grade.
endif.
endif.
endloop.
modify it_po from wa_po index c_index.
clear :c_grmenge,wa_po,wa_ekpo,wa_mseg,c_index.
endloop.
endform. " SETDATA
*& Form FIELDCAT
* text
* --> p1 text
* <-- p2 text
form fieldcat .
perform buildfields using '1' 'BANFN' 'IT_PO' 'PR Number' '' ''.
* perform buildfields using '2' 'BNFPO' 'IT_PO' 'PR Item Number' '' ''.
perform buildfields using '2' 'KNTTP' 'IT_PO' 'A/c Assignment Cat' '' ''.
perform buildfields using '2' 'PSTYP' 'IT_PO' 'Item Cat' '' ''.
perform buildfields using '3' 'EKGRP' 'IT_PO' 'Purchase Group' '' ''.
perform buildfields using '4' 'BADAT' 'IT_PO' 'Request Date' '' ''.
perform buildfields using '5' 'MENGE' 'IT_PO' 'PR Quantity' 'X' ''.
perform buildfields using '6' 'MEINS' 'IT_PO' 'PR Unit' '' ''.
perform buildfields using '7' 'LIFNR' 'IT_PO' 'Vendor Number' '' ''.
perform buildfields using '8' 'EBELN' 'IT_PO' 'Purchasing Doc No' '' '' .
perform buildfields using '9' 'BEDAT' 'IT_PO' 'PO Date' '' ''.
perform buildfields using '10' 'MTART' 'IT_PO' 'Material Type' '' ''.
perform buildfields using '11' 'MATKL' 'IT_PO' 'Material Group' '' ''.
perform buildfields using '12' 'MATNR' 'IT_PO' 'Material Number' '' ''.
perform buildfields using '13' 'TXZ01' 'IT_PO' 'Material Desc' '' ''.
perform buildfields using '18' 'MENGE1' 'IT_PO' 'PO Quantity' 'X' ''.
perform buildfields using '19' 'MEINS' 'IT_PO' 'PO Unit' '' ''.
perform buildfields using '20' 'NETPR' 'IT_PO' 'Net Price' '' ''.
perform buildfields using '21' 'PEINH' 'IT_PO' 'Price Unit' '' ''.
perform buildfields using '22' 'MBLNR' 'IT_PO' 'GR Number' '' ''.
perform buildfields using '23' 'MENGE2' 'IT_PO' 'GR Quantity' 'X' ''.
perform buildfields using '24' 'MEINS2' 'IT_PO' 'GR Unit' '' ''.
perform buildfields using '25' 'BELNR' 'IT_PO' 'Invoice doc. number' '' ''.
perform buildfields using '26' 'BLDAT' 'IT_PO' 'Invoice Date' '' ''.
* perform buildfields using '26' 'BELNR_D' 'IT_POP' 'A/C Doc. No.' '' ''.
* perform buildfields using '26' 'AUGBL' 'IT_PO' 'Clearing Doc No.' '' ''.
perform buildfields using '26' 'DMBTR' 'IT_PO' 'OPEN AMOUNT' '' ''.
perform buildfields using '26' 'DMBTR' 'IT_PO' 'clear AMOUNT' '' ''.
* perform buildfields using '26' 'DMBTR_C' 'IT_PO' 'Clear balance' '' ''.
if ch_bal = 'X'.
perform buildfields using '27' 'BALQTY' 'IT_PO' 'Balance Quantity'
'X' ''.
endif.
perform buildfields using '26' 'WMWST1' 'IT_PO' 'TOTAL TAX ADDED' 'X' ''.
perform buildfields using '26' 'RMWWR' 'IT_PO' 'TOTAL AMOUNT IN INVOICE' 'X' ''.
endform. " FIELDCAT
*& Form BUILDFIELDS
* text
* -->P_0449 text
* -->P_0450 text
* -->P_0451 text
* -->P_0452 text
form buildfields using value(p_col_pos) like sy-cucol
value(p_fldname) type slis_fieldname
value(p_tabname) type slis_tabname
value(p_reptext) like dd03p-reptext
value(p_do_sum) type char1
value(hotspot) type char1.
wa_fcat-col_pos = p_col_pos.
wa_fcat-fieldname = p_fldname.
wa_fcat-tabname = p_tabname.
wa_fcat-reptext_ddic = p_reptext.
wa_fcat-do_sum = p_do_sum.
wa_fcat-hotspot = hotspot.
append wa_fcat to it_fcat.
clear wa_fcat.
endform. " BUILDFIELDS
*& Form DISPLAY
form display .
clear wa_layout.
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
* wa_layout-box_fieldname = 'SEL'.
* wa_layout-edit = 'X'.
perform build_sort using 'BANFN' '1' 'X'.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
i_callback_program = sy-cprog
* I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'USER_COMMAND '
i_callback_top_of_page = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
i_background_id = 'ALV_BACKGROUND'
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = wa_layout
it_fieldcat = it_fcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = it_sort
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = 'A'
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = it_po[]
exceptions
program_error = 1
others = 2
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " DISPLAY
*& Form top_of_page
* text
form top_of_page. "#EC *
**********Create report header*********
refresh it_lshead.
clear wa_lshead.
**********To display date in header*********
* write: s_badat-low to c_low dd/mm/yyyy,s_badat-high to c_high
* dd/mm/yyyy.
* if s_badat-high is initial.
* concatenate 'Dated on' c_low into c_date separated by space.
* else.
* concatenate 'Dated between' c_low 'and' c_high into c_date separated
* by space.
* endif.
wa_lshead-typ = 'H'.
wa_lshead-info = 'PR To Payment History'.
* 'Pending Indents History -We had a requirement to retrieve "aging of receiveables" by customer. Basically, it goes thru each record and depending on the due date places the amounts in the following buckets (example). 0-30 day Overdue, 31-60 days Overdue, 61-90 days overdue, 30+ days overdue, 60+ days overdue) etc all the way to 6+ years overdue.
There are also cooresponding buckets for coming due analysis. For example, what is: 0-30 days coming due, 31-60 days coming due, 30+ days coming due, etc...
To do this, first I needed to be able be able to produce an open items statement at any given time in the past. Now, this seems impossible because of how the items go from open to cleared all the time. And an item that was open one month ago, may not be open anymore.
What I did was first remove any selections on item status. Then compare the posting date with teh key date in the past, if the posting date is less than or equal to the key date, keep the record.
Then compare the clearing date with the key date. First, keep all that are #. (This keeps all records still open from that posting date/key date)
Then, add another check for all items that were cleared after the key date (GT Key Date). This gives you the open items on that date.
Hope that makes sense. Let me know if you want clarification.
/smw -
Error in creation of custom PD infotype
Hi,
I have a task of creating a custom PD infotype(p9xxx). I created HRI9xxx structure with all the custom fields and when I try to create the infotype using tcode PPCI(selected 'field infotype' option and create button in the 'infotype' block was pressed), it gives an error message that p9xxx-begda is not in ABAP dictionary and then it gives me list of screens, module pools and tables created. This custom infotype entry does not exist in T777I. I have tried regenerating it and same problem persists. If anyone knows the solution, please do let me know.
Thanks in advanceSolved.
-
Implementing BADI MD_ADD_COL_EZPS for MD04 custom column
Hi there,
I'm using BADI MD_ADD_COL_EZPS to display 3 new buttons and three new columns in MD04.
For each line item that is displayed, the custom column is filled, after the button is hit -This works fine.
My Question is:
Is there any way to limit the value that is filled into the new column so that it only appears on the FIRST line item/row?
(At the moment it is repeated all the way down the page - the new value is a material characteristic, so doesn't change, will always be the same for each line)
I've looked at all the available structures/tables in the FILL_ADD_COLUMNS method of the BADI, and none seem suitable
to determine the "first" row. (ie. something like the way SY-TABIX or SY-INDEX might be used)
Any help appreciated.
Thanks,
David.Hi Shubhendu,
in the method 'ACTIVATE_ADD_COLUMNS', you can set the flag EZ1_MODE to '1' to make the first column visible always. (it's been a while, but I think setting it to '2' makes it visible when the button is pressed.)
Same applies to EZ2_MODE for second column, EZ3_MODE for third.
look at the flags/parameters in this method, and also in FILL_ADD_COLUMNS, to fill the data.
here you need to fill structure EMDEZX_USEX1 (for column 1) etc.
The code is hit for each record displayed in MD04
Hopefully this helps you.
Regards,
David -
Custom message required on log on pop-up in SAP CRM WEB UI
We required custom message to the log- on popup, right now the message is coming after we give the user ID and password "starting SAP CRM" instead of that
user required welcome message.., how can achieve this ?
Please reply as soon as possible.Hi Pankaj,
did you already check the guide in the CRM Wiki:
https://wiki.sdn.sap.com/wiki/display/CRM/WelcomeUserMessageinWeb+UI
Hope this answers your question.
Best Regards,
Michael -
Custom error message in SAP application log
Is there a way to add a custom error message to the SAP application log without passing the message variables MSGV1, MSGV2, MSGV3, MSGV4 and the Message class and number.
We want to pass a custom message from the BAPIRET2-MESSAGE without giving it a Message class and number. The reason for this is that we are using class based exceptions instead of the traditional message class with errors. When we catch the class based exception, we take the error text of the exception and put in in the BAPIRET2-message and set the BAPIRET2-TYPE as 'E'. Now we want to add this to the SAP application log.
The call to 'BAL_LOG_MSG_ADD' takes a structure BAL_S_MSG which is just like BAPIRET2. However this function builds the entry to the application log use the message variables MSGV1, MSGV2, MSGV3, MSGV4. There is no provision to pass in the BAPIRET2 message.
Add message to application log
CALL FUNCTION 'BAL_LOG_MSG_ADD'
EXPORTING
i_log_handle = app_log_handle
i_s_msg = log_message
Thanks,
JayHi Jay,
Did you see <b>BAL_LOG_EXCEPTION_ADD</b>?
This FM is represented by the structure <b>BAL_S_EXC</b>. This can have various versions as described below:
<b>Data of BAL_S_EXC Structure / Use</b>
<b>EXCEPTION</b> / Exception class from which an exception text
is added to the log. This field must be filled.
<b>MSGTY</b> / Message type (MSGTY) of a T100 message.
This field must also be filled for exceptions.
<b>PROBCLASS,
DETLEVEL,
ALSORT, TIME_STMP</b> / Message or exception attributes, such as
problem class (PROBCLASS, for
example, "very important"), level of detail
(DETLEVEL, from 1 to 9), sort criterion
(ALSORT, unrestricted) and timestamp
(TIME_STMP). These fields can be displayed
in the log (except TIME_STMP).
<b>MSG_COUNT</b> / This attribute is not used for exceptions.
Follow the link below for more details:
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/d6/5d7f38f52f923ae10000009b38f8cf/frameset.htm">SAP Help DOc</a>
Hope this helps.
Thanks
Sanjeev -
If statement in Custom Calculation Script
I have 16 fields and if even one of them ="1" I have to list it in another field. I do not want to count or sum. If one of those fields has a 1 in it I just want the other field to display Y and if none have a 1 I want that field to display N.
Please help.
Thank you in advance~mjcYou need to write a compound logical statement to evaluate all of the values and that statement needs to evaluate to true or false.
Do you know how to write JavaScript?
Do you know how to enter JavaScript calculations into a form field?
For custom calculation of the text field I could write something like:
// define an array of the field names to check
var aNames = new Array("Text1", "Text2", "Text3", "Text4",
"Text5", "Text6", "Text7", "Text8",
"Text9", "Text10", "Text11", "Text12",
"Text13", "Text14", "Text15", "Text16");
// define a logical variable that is true if any field has a value of 1 - default is false or no field has a value of 1
var bMatch = false;
// value for text field
var TextValue = 0;
// logical value of field being equal to 1 test
var FieldIs1 = false;
// loop through all the fields and test the fields value
for(i = 0; i < aNames.length; i++) {
// logically OR the result of field i value equal to true with bMatch
// get the value of field
TextValue = this.getField( aNames[i] ).value;
// test the value of the field
FieldIs1 = Number(TextValue) == 1
// logically OR the 2 values
bMatch = FieldIs1 | bMatch;
} // end field processing
// set the field value
if(bMatch == true) {
event.value = "Y";
} else {
event.value = "N";
You will need to change the field names to match your fields. You can add more field name or remove field names as needed and the script will adjust for the number of field names. -
Error message is not getting displayed in customized subscreen
Hi Experts,
I have created customized sub screen for transaction BP. There are two fields namely CPS applicable and PPS applicable.
I am validating both fields against value if user enters same value as Y and Y . Then Error message should display
saying that 'It should not be same and please change the entry'. Its working fine when press enter on the sub screen.
But its not working where if users try to save the entries without entering enter button.
Please help me anyone regarding this issue.
Thanks
Ramesh ManoharanHi ,
you can do validations at Save Using BADI or Events ( please ref DEZ_'s Posting), in my case im using BADI to do validation , reason is...user was able to save witout going to the custom tab , thats y im using BADI and Screen(Custom) Validations.
regards
Prabhu -
Worst customer expense ever, three think pad’s and this v570 latter and all they say is try again. After this im done with their products
This is my experience over what has become a 2 month long episode and a very bitter ending for me.
I recently bought a laptop for school, I chose Lenovo because iv only have ever used a thinkpad and was very happy with them.
I bought a v570 , the model I got was a great price but only has a 2200mha 6 cell battery (half the normal amount) so battery life is only 3 hours. Which is not a big deal because I can buy another battery and this is where my story begins .
I call Lenovo (feel better when I support someone though commission) and asked about available battery’s, and wow my luck a 8 cell battery is available for my laptop! So I order it and was told it would take 9 business days for me to receive it, which is perfect because I can return my laptop with in 15 days.
Latter that week I look at the battery I got
http://shop.lenovo.com/SEUILibrary/controller/e/webca/LenovoPortal/en_CA/catalog.workflow:item.detai...
and notice that it has crazy dimensions that will not fit my laptop.
So I call in explaining this, and was told that I was wrong and that is will certainly fit my laptop ( which is okay because it is their job and I believe than are far more knowledgeable than me)
So two weeks latter over 20 days latter I have no battery and no call or e-mail saying why I haven’t got it.
I call in with my order number and am told that there are “Manufacturing problems” and the battery is in very tight supply, and they would put me to top of the list.
I am mad at this point because I can no longer return the laptop and need this battery for work, but there is nothing I can do or any one els its life so I say thank you very much and goodbye
And I call back 1 week later to check the status of my order, wow great news they have one and will ship if out in 7 business days, and I will get it with in a week or two.
So it’s a month and half and I finally get my battery!
HURRAY I can finally use my nice laptop for my work that I bought it for!!!!!!!!!!
I open up my battery and sure enough it is not even a close fit for my laptop it’s a completely different shape…..
So I call them, and explain to them how I was ASSURED the battery would fit and it dose not. They send me a return ups page so I can drop it off and get my money back, after wasting over a month and a half of my time and 900$ on a laptop.
And all they say is I will get a refund with in 5 days of receiving it and and have to purchase the proper battery.
Worst customer expense ever, three think pad’s and this v570 latter and all they say is try again. The worst part of this was that when their was a delay they did not care to call me or send me an e-mail with a simple update. After this im done with their products.hey jul644,
sorry to hear about what had happened. could you pm to me the following details as i would like to check what had happened.
Name:
Country:
Mobile:
Email:
MTM [machine type model]:
( To locate MTM - http://support.lenovo.com/en_US/FindProductNumber.page#find )
Serial Number (S/N):
Date of Purchase:
Case/Order Number : (if any)
Screenshot of Error(if applicable) : (upload it to a hosting site and paste the link here)
Location of unit : Home / Repair Center (delete where appropriate)
Description of issue :
Troubleshooting Taken : (if any)
WW Social Media
Important Note: If you need help, post your question in the forum, and include your system type, model number and OS. Do not post your serial number.
Did someone help you today? Press the star on the left to thank them with a Kudo!
If you find a post helpful and it answers your question, please mark it as an "Accepted Solution"!
Follow @LenovoForums on Twitter!
Have you checked out the Community Knowledgebase yet?!
How to send a private message? --> Check out this article. -
How do I use a custom UserInfo with a T3Client?
This is related to my previous post, 4655. The problem is I if
use a custom implementation of the interface
weblogic.security.acl.UserInfo in a T3Client constructor, the
client fails to connect. If I use
weblogic.security.acl.DefaultUserInfoImpl, the client connects
and disconnects without any problems. How do I use a custom
UserInfo implementation with a T3Client?In don't know about the Gmail part, but for the Hotmail, try this link.
Here's another link from a different source. -
How do I add URI web link with custom tooltip like "CLICK HERE TO UPDATE" instead of URI web link in tooltip.
You've probably found an answer to this by now, but I think this has been addressed in another forum -- The link below suggested using a button and adding the tooltip to the button.
https://forums.adobe.com/thread/304974?start=0&tstart=0
Sounds like it would work but I haven't actually tried it.
Good luck~!
Maybe you are looking for
-
How do I copy one playlist from one computer to another?
I have a playlist of songs on my laptop that we play over remote speakers in our small business. the playlist is a mix of songs I imported from external MP3 files, and albums purchased through iTunes. I've upgraded all of those purchases to iTunes Pl
-
i have a G5 iSight & need to update the software so that I can import songs from iTunes to put on my iPod. Does anyone know what upgrade I need please, atm I have Mac os 10.4.11 on Macintosh hd ( think it maybe Tiger ? ive been told I need leopard bu
-
i hav a ipod that i used for my desktop, which is windows is there any way to alternative from my desktop and my macbook, using itunes on both of them?
-
Random restarts after installing 10.6.1 from 10.5.8 AND as clean install
Random restarts first noticed using safari. Continued to restart when no apps were running every 1 - 5 minutes. Erased drive and did a clean install to 10.6.1. Random restarts continued, no pattern identified. Had to downgrade back to 10.5.8 for a us
-
Problems in Caliberation Setting
Hi, I have an Application where I need to plot the charts using <b>Time-Scatter Graph</b> . I am using <b>2 Y-Axis</b>. But I am unable to dynamically set the Minimum and Maximum y-axis points through code. Currently I have set the Minimum and Maximu