|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
2 L$ s) D& ~6 i7 ?
Teamcenter ITK二次开发源码分享: 创建一个工作流, d: u+ g! t- Q4 D, ~- H
, f* u% `0 p$ e, p
- /*HEAD CREATE_A_PROCESS CCC ITK */+ _ s9 b1 @/ |, \( q
- #include <stdlib.h>( @/ }# t& s) t: F4 L. A
- #include <TCcore/aom.h>: A& x3 N t; P+ D5 ?3 k
- #include <tc/emh.h>. U0 M3 c% {' q& F5 g! z
- #include <epm/epm.h>
p1 x! C+ R6 v s& L - #include <tc/tc.h>
$ W3 J( d0 |! T9 Q5 y) s; D# K - #include <sa/tcfile.h>
, r* N4 T, D0 U9 N - #include <itk/mem.h>
/ j f% g- n* s. W! t$ }; a# v7 c - " d* V( o* G7 P& L
- #define EXIT_FAILURE 1
* _+ h% l* `3 H1 k: Q0 h - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X))). C+ `/ w( h4 x3 ^ \
- static void report_error( char *file, int line, char *function, int return_code)
/ ~1 C& b2 N. t, Q1 C0 G# O - {
5 b' e" Z! f% |5 U - if (return_code != ITK_ok) D& M7 c9 z/ e0 Y% h
- {
$ X, e! V4 u$ G/ B! ^! I, K1 ^/ H - char *error_message_string;
- i6 t1 l8 X6 }$ R( X1 f f& ]& s - EMH_get_error_string (NULLTAG, return_code, &error_message_string);" l( W* r) E0 V8 m# I
- printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);: R7 N; C7 C1 h% k$ B+ N& H2 C# c' _1 u! e
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
6 {5 I: w% Z" M - if(error_message_string) MEM_free(error_message_string);
7 g% a; j' o& S" W: e! X K6 d- I - printf("\nExiting program!\n");9 q) C `8 v$ s1 P
- exit (EXIT_FAILURE); & A/ N8 n' }# Y4 F2 I- o
- }1 T& u! i! d$ |$ K8 W
- }
5 k9 |) o( R- O9 g* n* S - ; j( T2 E5 {- b5 ]' G3 k
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))
3 ~* s! `6 V6 j5 m - static void check_value( char *function, int value ). l( `2 y7 O2 I+ G) E5 y( O, u
- {
* F! o; x6 S! L1 Z - if (value == 0)! ^3 w- B, j, ^
- { D0 J6 h j; ~
- printf ("\t%s is NULL\n", function);* P9 Y& l: h) T+ g
- printf("\nExiting program!\n");" Z0 O! c8 K( @ s, j0 L
- exit (EXIT_FAILURE);
9 g( m6 d. u; u4 b# f - }* } J+ ^5 E ^" U8 d0 D
- }
) K4 X- {0 h6 N" [, t4 h - , {7 l( ^9 P: z- Y* D! N
$ J( l1 y7 ]/ e- f" A! K- static void do_it(void)
. l3 C( k U- F) K$ P8 @ - {; j5 C, f/ s5 |) _
- int
# N/ s! l2 I; J - attach_types[1] = {1};( i( |$ p/ U$ b: [
- tag_t
3 M, r: x( E5 N9 x - rev = NULLTAG,
; V2 d3 ]9 t Z6 _6 d - process_template = NULLTAG, 6 l8 i( X/ \; u. A B3 t2 h
- process = NULLTAG;0 }6 |/ j x: Y p! ^) P
- - I' s6 o+ d& ]! k! w8 [7 S+ @
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
- \7 m) K" h. L - EXIT_IF_NULL( rev );
; p M1 O4 N3 ]* m n" h7 P( G - 8 K( }! ?$ q, \0 N$ t: _
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
9 x$ P. S! U& H) V4 B - EXIT_IF_NULL( process_template );
6 c& {$ i, M. u' I/ C
5 M& F; y" |2 R" t
7 P, A) s0 b# v4 O0 Y; e- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
, D( v, |$ N7 T - attach_types, &process) );* n* W( u6 t h4 ]# W1 K
- 1 i+ H8 g6 n7 U9 K# T9 x
- EXIT_IF_NULL( process );
C! F! J9 _* Z i* L8 W - }
# A8 t8 i% w8 l
1 s1 Q2 H- y4 G8 _ Y- int ITK_user_main(int argc, char* argv[])# r2 ^9 A# N8 F4 i' _, ]2 ]
- {
5 x8 @2 }: A, q2 Y+ {8 n3 r! j - int
/ m0 R2 H( S3 I5 z" D5 g. t - status = 0;
C/ ~6 E, w2 h& x/ w8 f/ B -
9 V( K$ M/ ?& v8 J' H - ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
1 B6 @6 v! O0 r! p' H - status = ITK_auto_login();
8 F% _' T/ t5 M7 | - 6 ~# K5 g, ^9 g$ S! b3 x. I
- if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");- S1 \- L, f, u) t5 R
- else8 D" |9 j% v4 W/ S$ c+ J
- {7 r4 t+ G2 q7 t2 t, m7 _
- printf("\nLogin successful!\n\n");2 A/ o+ c }* j( J
- ITK_set_journalling(TRUE);
9 M' b/ R: @' `5 s - do_it();
/ R3 ~2 @6 B! J' \ - }
! U" ]$ u: Y" q X5 w8 h - ITK_exit_module(TRUE);) C7 |9 d% V) g$ }1 `( z5 H
- return status;
& E; z" ~; Y% w; r: ^8 D$ [9 f - }
复制代码 - R3 i, [) F; `; h2 S Q9 n2 S$ W% Z
- a; O! {" ]* X) C" K: I: p( k7 x2 j! X" ^) u% u1 X9 o
|
|