|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
* v; w8 F- Q6 F5 u9 I8 s' ? }* u$ u
Teamcenter ITK二次开发源码分享: 创建一个工作流: o/ g1 j b6 m% Q
; X+ {7 T) ^5 b: d- X/ Z/ @) e- /*HEAD CREATE_A_PROCESS CCC ITK */
$ R# p+ k3 `; V - #include <stdlib.h>
- B# N4 \. e% P' I4 v; `' _1 u - #include <TCcore/aom.h>2 ^0 P8 |0 Y# ~" x" j) {: y
- #include <tc/emh.h>/ \: O" V2 r- p; W
- #include <epm/epm.h>6 _& F* [. }2 J! h
- #include <tc/tc.h>
" M- P' u' K, r/ ] ^ - #include <sa/tcfile.h>" D% ^- F+ Q+ ]' y+ a* l' J8 D1 c
- #include <itk/mem.h>
8 W; ~; e% `9 J* k* { - 7 j$ T& _ M$ ~ @+ G. [
- #define EXIT_FAILURE 1
1 ` P% Y) S) A% b - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))2 d. a( Z: N& c/ |4 E
- static void report_error( char *file, int line, char *function, int return_code)
2 i# x; N- E9 q. M* @6 I - {5 t4 l# S. ?( j$ S
- if (return_code != ITK_ok)
0 n* M6 r5 v d, P' a2 L - {
* @6 q6 D+ E1 | - char *error_message_string;5 _7 w" ~+ k: x: o9 o' C1 O
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
# j) f! {2 G6 r) K1 s& [ - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);+ S: J& d6 X" Y2 U! t- E2 \5 h
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
/ K8 }8 R2 _, f+ @8 g0 t - if(error_message_string) MEM_free(error_message_string);1 P3 K U9 _/ F; _
- printf("\nExiting program!\n");3 ~* a* _6 i! }) X" |
- exit (EXIT_FAILURE); 0 S: m0 t1 D+ j+ c
- }
" v# [1 Y6 F/ R) C - }7 F& w1 o4 s2 ~# `5 K# K: [. z; n
- + q) N! I1 F' n4 H
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))5 m n' D' c, l7 H' b9 C0 B
- static void check_value( char *function, int value )/ ]& V/ [/ z n" [
- {
! { S2 ?% Q5 `. j( i - if (value == 0)
3 I; z7 X$ k7 [; j6 c3 r - {
! ?9 P1 I6 |. T, a% I! h0 I' I - printf ("\t%s is NULL\n", function);6 T- |; d& F% v
- printf("\nExiting program!\n");0 Q3 e7 @6 M! h- |2 Y S
- exit (EXIT_FAILURE); # e9 Q" h3 K% K2 \
- }
: w' K& @$ w0 e. M( V- o9 Z* z" W# _ - }
' S! l+ e, w! [ - 5 \. t$ L: D9 [4 z q) ~" ~
9 T7 A! K: Q4 z; c1 ^- j- static void do_it(void). `( |& K1 b( R# O; L1 o
- {
% m8 o# q1 u6 G" O4 g1 K$ O( K - int 9 u& F% ^$ d, ?0 p, I
- attach_types[1] = {1};4 q* R, M5 g8 f5 ?0 J
- tag_t
; v" u& `5 N! d9 [# A t1 K0 Q - rev = NULLTAG, , F' l' k" C L$ w" e; b
- process_template = NULLTAG,
$ k: E, }: b$ w# }* L - process = NULLTAG;0 {- U6 ~0 Q$ X% u5 W
* \, Y) L4 R( | _! v9 e- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );+ A. j& m9 t- a N. s( U# `
- EXIT_IF_NULL( rev );
: ]9 m O ], K. C$ }
; u4 w! e# n; G: n- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
* }! o; i. w6 J' E; {9 U* D - EXIT_IF_NULL( process_template );
2 G3 s1 o9 `* j8 I1 W
7 T1 E. D6 r E- v- e. p$ e! U- ) x7 ]/ w( y1 G
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
8 A" t- ~/ g! B - attach_types, &process) );$ a. M% d5 o r9 }) z
V0 o# J7 a p, K- EXIT_IF_NULL( process );
/ B7 F% i q8 N - }" q9 x2 R1 f1 s$ v/ v
4 u% u( t5 V' i- s7 f" B1 J9 D& K- int ITK_user_main(int argc, char* argv[])! u/ @( B0 k7 P, ~
- {5 ?2 d1 m* [5 N. v/ Z# i
- int
: R# ^& G6 U' M6 ^ - status = 0; * k) b$ m8 ?8 e6 d* { e# K- F* |
- - i. g! J# U) ?% O7 Y- Q
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
/ H5 c5 r6 F3 b4 S) e3 { - status = ITK_auto_login();# d0 q1 d' C' L* F7 N# }0 Y, k
-
* R* ` d( m0 K" n/ G - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
: u: N# \: E. g7 i5 T0 p- n - else6 s; m) s1 n, L- U
- {9 ?: K7 q0 U8 z9 Q: r# B
- printf("\nLogin successful!\n\n");
3 z8 g# W% C! v( M& X5 p8 k4 Z1 I- I - ITK_set_journalling(TRUE);4 `& B1 x$ V$ q5 s$ D% z
- do_it();
* d) L' G2 K+ R8 m. h7 D! v- ~, H - }
; C6 z7 u# E0 U - ITK_exit_module(TRUE);9 u6 r9 k7 a0 _& ^
- return status;$ j- }1 k* a4 N
- }
复制代码 * ~7 D0 b3 R" C& T1 U' L g5 q
& U9 M- [/ \8 Q% A+ _* Q" h7 A7 p
0 A$ r, b' n9 a0 U# m# G |
|