|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
( c& w' F- i, F* X* @Teamcenter ITK二次开发源码分享: 创建一个工作流! q! `3 v4 g0 \
: B( C. d8 H K2 _- /*HEAD CREATE_A_PROCESS CCC ITK */$ b! [7 L! v6 j) p3 i# @/ D
- #include <stdlib.h>% I* Z9 [8 w( K% h# G1 Q' r# r( c
- #include <TCcore/aom.h>, x2 D) R2 q {- {* a0 w
- #include <tc/emh.h>
0 z, a# s# U0 ? r* L: ^' N - #include <epm/epm.h>& q2 g* k" P4 a" i- t% {1 y! _& d+ k
- #include <tc/tc.h>/ E9 \+ e/ K/ t6 Q! T/ X+ D3 g
- #include <sa/tcfile.h>2 j5 j; m+ M! x% V5 ~) {3 o' ^
- #include <itk/mem.h>8 Q0 Z, N3 e+ K" k' Z3 `* l
- 4 @( s8 @- U4 p9 f, J! Z1 E' `
- #define EXIT_FAILURE 1
8 ?/ J1 m& K- j8 \& u* K - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
$ l# D8 Q. w) b2 t3 C' A, F$ P - static void report_error( char *file, int line, char *function, int return_code)
# x- B, e6 p& c6 Q9 r - {
0 |5 D+ h& v. a _% L( o1 | - if (return_code != ITK_ok)/ ~3 m& ^, @7 e* A; ~; z
- {
7 A" Q% V( v7 _/ T0 |5 o - char *error_message_string;0 s" ?3 I0 Q5 R
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
! Y# g# J5 q! p F - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
# F$ d# g; h' d: M1 z" T, O2 t+ U - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
, x( a) J1 q" k w, v7 `) r - if(error_message_string) MEM_free(error_message_string);
; I: u! O( D2 u- B$ ~3 s, K5 [ - printf("\nExiting program!\n");
/ b Q. q P7 |2 w5 ~1 k+ N - exit (EXIT_FAILURE); % {+ O' t/ Y+ X) F
- }
( r# p" `) S/ j% [4 f4 z - }5 h0 G4 O+ n: @0 K' Q$ q- q
" \# O6 g' @( U( A7 U- #define EXIT_IF_NULL(X) (check_value(#X, (X)))4 z2 |# Q; Z. u( v# |# w9 ~
- static void check_value( char *function, int value )# ~- `5 L; E( _% q+ a
- {
% n4 N/ V' e7 g" N& z9 M2 ^2 Q - if (value == 0), V o y% y# @; x; f3 `: p
- {
) ^; m( F* T! b. ~! ~; B - printf ("\t%s is NULL\n", function);
2 H+ T' ]0 J* R% p5 H6 J+ y' U - printf("\nExiting program!\n");
) X9 d# r6 u, q, O; a h- c; w9 e - exit (EXIT_FAILURE); 4 }' C* ?5 x$ E1 ?! j6 f" }$ \
- }9 D: F# i7 y; j# \! d/ q% I
- }; ^' E. U8 Q3 n$ z
2 F9 H ]/ r: ~
& b7 p: I9 R9 Y+ R- v5 g |+ V- static void do_it(void)
1 ~- Z' w. Z3 c7 _% P6 m - {
; U8 A. k0 A; i ^ l - int 3 H# g4 ~3 T! a! g+ P; ?
- attach_types[1] = {1};
& E- l6 P, M# r$ i1 R - tag_t
0 T" h2 [) H! j - rev = NULLTAG,
7 ]& G( P/ L3 N) \& y6 j/ p8 A - process_template = NULLTAG, 9 U& h* V9 S# T" _5 U
- process = NULLTAG;8 o" a6 P( z2 T' \0 ~8 ]
- % ] S1 L# \3 n# E4 c. V
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
( r1 \+ v% A8 j" X4 C - EXIT_IF_NULL( rev );
" [* |; G0 \9 a6 I$ I
9 G- L1 m+ @: ]% w/ ]8 M: X) @: i$ M- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); 2 m$ L2 {4 `* `/ i
- EXIT_IF_NULL( process_template );
$ c1 `9 o4 O; e - 6 B9 M% y, ]( _. ]: f
+ s0 d8 R0 B% ]2 A- |% \$ p- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
! w5 o* k; \# O- p- e9 X- L9 ?; [ - attach_types, &process) );
4 H; D, g7 a) F. a - / W2 [5 v$ S9 K; V3 k Z
- EXIT_IF_NULL( process );
3 W, G8 a F- o& ]( ~% x. W% u$ A: R - }
I2 I, P. Q- y- p) E: l3 q( r
- j0 O; q4 W; t( x& u( _" c- int ITK_user_main(int argc, char* argv[]) m; l/ c: t7 P( J6 w, m. {3 u
- { Z% M7 t' e6 {: P7 R
- int
& T) x& E7 g: F2 i: t( y - status = 0; 1 m0 s; s/ e0 z: u) Q" K ^$ B: d
- ) I( i+ J$ `* W$ Q! Z
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
% B& b4 g+ l" U# C8 @) q( X - status = ITK_auto_login();; I2 I" u1 V2 @1 U" L$ u
- % `. M0 v6 m3 _9 ^( p# L9 t9 H
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");) D3 [8 }# k! N2 {
- else
3 R# w5 @- O; x. s6 q# p5 @& W" G - {
1 h$ s1 ]* N" J7 M7 _8 ^' z - printf("\nLogin successful!\n\n");3 c/ e' ~% k- B* D, L
- ITK_set_journalling(TRUE);- ?' h% |+ c. |! n# }+ a
- do_it();3 L; L b0 |; m1 h/ W
- }
& l2 c: ^5 Y" F/ X0 F/ E# t5 C7 u - ITK_exit_module(TRUE);
+ P; A" t' S# W* q) z) v - return status;) z Z$ K5 N% X0 O% T D' U e
- }
复制代码
: H1 t z" K9 v& b! Q% n1 Q. ?( P6 l, w/ d5 ^% u2 V5 x
7 i+ d& ~' D+ f( G5 x6 E |
|